学习笔记-斯坦福iOS7-第八课:协议,block,动画

ScreenInk 0.0.1.exe 立即下载
1. Protocols
a. 语法:id<myProtocol> obj;
b. 协议中的方法默认必须实现,@optional 后为可选的,@required 后为必选的;
c. 协议中可以声明属性,类中也需实现;
d. 协议A上还有协议B,那么要想实现协议A,也要实现协议B中必选方法;
e. @protocol NSObject, NSObject累实现了NSObject协议的方法;
f. iOS中协议主要用作委托和数据源,

2. block
a. block内部可以访问外面的局部变量;
b. 局部变量前加 __block ,块里就可以读写了;
c. block内访外面的对象(如:NSString),NSString将会被strong 指针指向,直到block结束,防止NSString提前被释放;
d. ^BOOL(id obj) {
       return TRUE;
    }
这种块里可以明显知道返回类型的,前面不用加BOOL类型:
^(id obj){ ... }
e. 循环引用
. block 存在时,里面引用的对象都有一个强引用;如果该对象再强引用了block,就造成循环引用,无法释放了:
[self.myBlocks addObject:^{
    [self doSomething];
}];
block 强引用self,self也通过myBlocks array强引用block;
. 解决方案:
__weak MyClass *weakSelf = self;
[self.myBlocks addObject:^{
    [weakSelf doSomething];
}];
block 不再强引用self。


3. UIView Animation
A. 改变视图属性:frame,transform,alpha..;
a. Animation class method inUIView:
+ (void)animateWithDuration:(NSTimeInterval)duration
             delay:(NSTimeInterval)delay
options:(UIViewAnimationOptions)options
animations:(void(^)(void))animations
completion:(void(^)(BOOL finished))completion;
注:如果动画期间,其他地方改变了animations里的数值,导致最后结果没有达到预期,completion块不会执行。


b. UIViewAnimationOptions
BeginFromCurrentState : 动画状态从当前值开始,例如动画设置alpha,从0 - 1,开始期间alpha= 0.2了,设置该标记,会从0.2开始;
AllowUserInteraction :是否允许手势,动画期间
淡入淡出等等

B. 视图翻转等动画 
+ (void)transitionWithView:(UIVIew*)view
duration:(NSTimeInterval)duration
options:(UIViewAnimationOptions)options
animations:(void(^)(void))animations
completion:(void(^)(BOOL finished))completion;
 
C. 一个视图到另一个视图
+ (void)transitionFromView:(UIView*)fromView
                    toView:(UIView*)toView
duration:(NSTimeInterval)duration
options:(UIViewAnimationOptions)options
completion:(void(^)(BOOL finished))completion;


4. Dynamic Animation
a. 由动画者(animator),动力行为(behaviors),动力项(items)组成。
b. demo:
UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:aView];
UIGravityBehavior *gravity = [[UIGravityBehavior alloc] init];
[animator addBehavior:gravity];

id<UIDynamicItem> item = ...;
[gravity addItem:item];

//要改变UIDynamicItem里的bound,center,变换,需要调用 UIDynamicAnimator 的 updateItemUsingCurrentState 方法;

c. behaviors
.UIGravityBehavior  重力行为
.UICollisionBehavior 碰撞行为
.UIAttachmentBehavior 吸附行为
.UISnapBehavior 速甩行为
.UIPushBehavior 推动行为
.UIDynamicItemBehavior 动力项行为,控制动力项的内部行为
.UIDynamicBehavior 可把上面的行为添加进来 addChildBehavior


5. demo 演示 - 类似俄罗斯方块

分别添加了Dynamic Animation 和 View Animation,不错!



外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货 数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识 部分品种还提 外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货。数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识。部分品种还提供盘口五档或十档挂单数据。所有数据按交易日压缩打包,解压后为CSV格式,便于直接读取分析。 数据源:CMES金融数据库 立即下载

相关推荐

三相PWM整流器双闭环控制仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了三相PWM整流器双闭环控制的Simulink仿真模型,重点实现电压外环与电流内环的协同控制策略,通过仿真验证系统在稳态与动态工况下的运行性能。模型涵盖主电路拓扑结构、PWM调制技术、坐标变换(如abc/dq变换)、PI控制器设计及双闭环控制逻辑的实现,能够实现单位功率因数运行、直流侧电压稳定控制以及网侧电流正弦化等目标。同时,文档进一步拓展至VOC(虚拟同步发电机控制)与SVPWM调制相结合的高级控制策略,提升了系统的动态响应能力与控制灵活性。; 适合人群:具备电力电子技术与电力系统基础知识,熟悉Simulink仿真环境的电气工程及相关专业的本科生、研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解三相PWM整流器的工作原理及其双闭环控制策略的设计方法;②掌握基于Simulink的电力电子系统建模、仿真与控制系统调试技术;③为后续研究电压源换流器(VSC)、虚拟同步控制(VOC)、微电网并网控制等先进电力电子控制技术奠定理论与实践基础。; 阅读建议:建议结合经典电力电子教材与本仿真模型同步学习,重点关注PI控制器参数整定、坐标变换模块的搭建逻辑以及系统稳定性分析方法,有条件者可进一步将仿真结果对接实际硬件平台进行实验验证,以深化对控制策略工程应用的理解。

iOS开发-UIView之动画效果的实现方法(合集)

前言:在开发APP中,我们会经常使用到动画效果。使用动画可以让我们的APP更酷更炫,最重要的是优化用户体验,但取决于动画的质量。像QQ、微信、新浪微博等APP,动画效果就很好了,至少我很喜欢它们的动画,让我使用起来感觉很顺畅,心情很开朗。本文会介绍UIView效果的实现方法,非核心动画。 一、使用UIView类实现动画 基本写法,代码必须放在Begin和Commit之间: [UI...

weixin_30478757的博客 305

Flink CDC 3.0 详解

Flink CDC 是基于数据库日志 CDC(Change Data Capture)技术的实时数据集成框架,支持全增量一体化、无锁读取、并行读取、表结构变更自动同步、分布式架构等高级特性。配合Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。Flink CDC 于2023年12月7日重磅推出其全新的 3.0 版本,3.0版本的发布对 Flink CDC 而言具有里程碑的意义,自此 Flink CDC 从捕获数据变更的Flink 数据源正式迈向为以 Flink

奔跑的蜗牛的博客 2638

学习笔记 - 实现从pc到iPhone的文件传输和视频播放功能

在学习CocoaHTTPServer 开源库时,发现其很是强大,甚是方便!学习中决定同时来写一个demo,加深对该库的理解。 功能大概如下: 1. iPhone 端创建一个HTTPServer,并把ip和端口号显示出来; 2. pc端通过网页形式输入ip和端口号,便会显示选择文件的网页; 3. pc端选择文件或视频后,iPhone端会在不同页面上显示所有文件,和视频文件;

sharpyl的专栏 2365

使用C++编写一个可视化窗口

初学C++时,控制台会给我们提供一个黑窗口,而这篇文章所做的就是:创建一个属于图形界面窗口,而不是使用控制台黑窗口 如图,这是一个标题为XSZY的窗口 看完这篇文章,你想要的窗口大小,图标等都可以自己定义 甚至是在窗口上鼠标的样子,都是可以随意改的 所有有关视窗的基本函数和类型都定义在头文件 <windows.h> 中 我们只需要引用就好了 //引用头文件 windows.h #include<windows.h> 然后定义程序的入口函数main int __stdcall W

XSZY_的博客 6万+

用Cadence IC618和TSMC 180nm工艺,从零仿真一个2.4GHz双平衡吉尔伯特混频器

本文详细介绍了使用Cadence IC618和TSMC 180nm工艺从零开始仿真2.4GHz双平衡吉尔伯特混频器的完整流程。涵盖设计环境搭建、原理图设计、仿真配置、性能验证及版图设计等关键步骤,特别适合射频集成电路设计的学习者和实践者参考。通过实操技巧与工艺库结合的工程实践,帮助读者掌握混频器设计的核心技术。

weixin_30328063的博客 550

学习笔记- AVFoundation Programming Guide - Still and Video Media Capture

管理相机或麦克风等设备捕捉音视频,生成对象来表示输入输出,并且用 AVCaptureSession 对象来协调他们之间的数据流。需要用到下面几个类: . AVCaptureDevice 实例,表示输入设备。如:相机或麦克风; . AVCaptureInput 子类的实例,配置输入设备的端口; . AVCaptureOutput子类的实例,管理到视频文件或静态图的输出; . AVCaptur

sharpyl的专栏 1330

启动launch文件时显示找不到franka_ign_ros2_control-system...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 694

学习笔记- AVFoundation Programming Guide - Playback

Playback 控制assets的播放,你可以使用AVPlayer对象。在播放的过程中,你可以使用AVPlayerItem对象来管理asset的呈现,AVPlayerItemTrack来管理track的呈现状态。要显示视频,需要使用AVPlayerLayer对象。 1. Playing Assets 一个播放器就是控制asset播放的对象,比如开始和结束,seek到指定的时间。可以

sharpyl的专栏 1316

CANoe-vTESTstudio之Test Diagram编辑器

总之,CANoe-vTESTstudio的Test Diagram编辑器提供了一个直观且强大的工具,用于创建和管理测试用例。通过图形化的界面和丰富的功能,测试工程师可以更轻松地编写复杂的测试脚本,并有效地进行测试开发。在上面的示例中,我们创建了一个名为"MyTestCase"的测试用例,并定义了两个测试步骤"Step1"和"Step2"。在上面的示例中,我们在执行"Step1"之后使用条件语句来确定是否执行"Step2"。在每次迭代中,我们创建一个新的测试步骤,并根据迭代次数动态生成相应的日志和验证消息。

TcData的博客 248

医院批量排班实战指南(三)日期列表生成与时段批量操作

在上一篇《批量排班功能实现指南(二):日期与时段设置》中,我们完成了日期范围选择和重复规则配置的界面搭建,实现了从第一步到第二步的跳转功能。现在我们已经可以选择日期范围和重复规则,但还缺少最关键的功能——根据规则生成日期列表并进行时段配置。本篇将继续深入批量排班的核心功能——日期列表生成与时段批量操作。根据日期范围和重复规则智能生成日期列表为每个日期配置上午、下午、夜诊时段批量时段操作提升配置效率日期列表的展示与管理。

低代码布道师的博客 1345

学习笔记:Effective Objective-C

《Effective C++》 是一本非常经典的C++书籍,看到《Effective Objective-C 2.0  编写高质量iOS与OS X代码的52个有效方法》时,很激动,想必一定也很不错,开始阅读。

sharpyl的专栏 930

加权均值向量算法(INFO)详解:从数学原理到智能算法

本文系统介绍了加权均值向量算法(INFO)的理论基础、数学模型与实现应用。该算法基于加权均值数学概念,通过MeanRule规则平衡探索与开发能力,具有结构新颖、参数合理的特点。核心内容包括:1) 算法理论基础,阐述加权均值数学定义与小波函数权重计算;2) 算法原理,详细解析更新规则、向量组合和局部搜索三阶段数学模型;3) 实现方法,提供MATLAB代码关键参数解析;4) 改进方向,介绍INFO-KELM混合模型等变体;5) 应用案例,涵盖函数优化、工程设计与机器学习领域。

qq_42212808的博客 233

学习笔记- AVFoundation Programming Guide - Editing

Editing AVFoundation 提供了功能丰富的类方便编辑音视频assets。AVFoundation的编辑API的关键在于compositions。compositions简单的吧一个或多个不同媒体的assets集合到一起。 AVMutableComposition 类提供了插入和删除tracks的接口,以及管理他们的时间排序。 AVMutableAudioMix 类可以在com

sharpyl的专栏 782

anaconda navigator 卡在loading application界面一直没有反应解决办法

在打开anaconda navigator 程序的时候,遇到了2个问题。第一个问题:打开的时候弹出提示:There is an instance of Anaconda Navigator already running.第二个问题:程序一直卡在loading application界面一直没有反应。以下是我的解决办法,有效果。

猿小白的博客 4383

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

学习笔记- AVFoundation Programming Guide - 概括

关于 AVFoundation 1. AVAsset  表示一个或多个媒体数据(音频或视频),能提供媒体的信息(标题,时间,等待),AVAsset不依赖特定数据格式,通过媒体文件的URL即可创建。 AVAsset或track被初始化后,并不意味着马上就准备好,可能需要一些时间来计算文件的持续时间。所以需要定义一个块,通过异步回调返回状态。 2. Playback AVFo

sharpyl的专栏 658

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

学习笔记-斯坦福iOS7-第十五课:MapKit和嵌入Segue

一. MKMapView 1. MKAnnotationView : 包括坐标,标题,子标题,左侧图片,右侧按钮 2. 使用大头针,需要实现MKAnnotation 协议, 3. 添加大头针方法: -(void)addAnnotation:(id)annotation; -(void)addAnnotations:(NSArray*)annotations; -(void)remove

sharpyl的专栏 645

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

学习笔记-斯坦福iOS7-第十七课:摄像头、Core Motion、Application Stat

一. UIIMagePickerController 1. 检测是否可用  +(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType; //sourceType:UIImagePickerControllerSourceTypePhotoLibrary/Camera/SavedPhotosAlbum

sharpyl的专栏 479

学习笔记-斯坦福iOS7-第七课:视图,绘制,手势识别

第七课 视图,绘制,手势识别 1. Views a. 初始化 . awakeFromNib :从storyboard来的UIView,不会调用initWithFrame; . initWithFrame :代码调用 b. 坐标,单位点,非像素 @property CGFloat contentScaleFactor; // 返回每个点的像素数,Retina返回2,非Retina

sharpyl的专栏 474

学习笔记- AVFoundation Programming Guide - Using Assets

Using Assets Assets 能来自一个文件或者来自用户iPos库或照片库的多媒体文件。当你创建一个asset 对象时,所有你可能要检索的信息不是立即可用的。 一旦你有了一个视频asset,你可以提取静态图像,转换成另一种格式,或内容裁减。 1. Creating an Asset Object 通过URL创建asset,可以试用AVURLAsset。创建asset最简单

sharpyl的专栏 456

学习笔记-斯坦福iOS7-第十一课:表格视图和iPad

一. UITableVIew 1. storyboard 中拖入一个TableViewController,可对Cell进行style定义,或custom; 记住一定设置Cell 的 identifier,代码里提供UITableViewCell数据源时用到的唯一值。 2. protocols :dataSource and delegate; a. dataSource 主要包括3

sharpyl的专栏 441

学习笔记-斯坦福iOS7-第十三课:Core Data 和表格视图

一. Core Data and UITableView 1. NSFetchedResultsController a. 把NSFetchRequest 和 UITableViewController 关联起来; b. 在UITableViewController 中需要有个NSFetchedResultsController 属性; c. 例如: - (NSUInteger)numb

sharpyl的专栏 417

学习笔记-斯坦福iOS7-第十课:多线程,滚动视图

1.Multithreading a.得到主队列 dispatch_queue_t main = dispatch_get_main_queue();    or NSOperationQueue *main = [NSOperationQueue mainQueue]; b.创建一个队列(非主队列) dispatch_queue_t other = dispatch_

sharpyl的专栏 403

学习笔记-斯坦福iOS7-第五课:视图控制器生命周期

第五课 视图控制器生命周期 1. UITextView a. NSTextStorage *textStorage; NSTextStorage 是 NSMutableAttributedString 子类。 b. NSTextContainer *textContainer; 设置文本限定区域。 c. NSLayoutManager 负责对各个字形进行布局。 d.

sharpyl的专栏 359
上一篇: 学习笔记-斯坦福iOS7-第七课:视图,绘制,手势识别
下一篇: 学习笔记-斯坦福iOS7-第九课:动画,自动布局
直隶码农
博客等级 码龄19年 95粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值