iOS7应用开发10:blocks、多线程、滚动条视图

1、关于多线程:

线程的概念,可以参考《操作系统》中“进程与线程”等部分的解释,同ios中线程的概念应大同小异。

队列(queue):可看做是blocks等待被某个线程执行的等候区;同线程类似,队列也存在主队列(main queue)用于处理交互方面的操作;其他队列可按需创建以完成某项特定工作。

如何执行另一个队列中的block,参考如下C语言代码:

dispatch_queue_t queue = ...;
dispatch_async(queue,^{});
要注意的一点是,只有在主队列空闲的时候,才可以执行其他队列中的block;

如何获取主队列,参考下列代码:

dispatch_queue_t mainQ = dispatch_get_main_queue();
NSOperationQueue *mainQ = [NSOperationQueue mainQueue];//OC的API
如何创建工作线程:

dispatch_queue_t otherQ = dispatch_queue_create("name",NULL);
如何执行主线程中的方法:

- (void) performSelectorOnMainThread:(SEL) aMethod withObject:(id)obj waitUntilDone:(BOOL)waitUntilDone;
dispatch_async(dispatch_get_main_queue(),^{aMethod();});


2、滚动条视图UIScrollView

像滚动条视图添加子视图的方法:

scrollView.contentSize = CGSizeMake(3000,2000);//定义滚动条视图的内容范围;
subView1.frame = CGRectMake(2700,100,120,180);//定义第一个子视图;
subView2.frame = CGRectMake(50,100,2500,1600);//定义超大的第二个子视图;
//向父视图添加子视图:
[view addSubView:subview1];
[view addSubView:subview2];
本质上讲,同向普通父视图添加子视图并无太大区别。由于视图的实际范围远超过屏幕的显示区域大小,因此滚动条视图的作用相当于在视图上的一个滑动显示的窗口。

获取当前可视区域的位置:scrollview.contentOffset;//以content视图的坐标系为准;

滚动条视图的缩放:改变视图的transform属性;需要设置视图的minimumZoomScale和maximumZoomScale,并需要以下代理方法指定缩放的视图:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)sender;


你可能感兴趣的:(线程,队列,滚动条,ios7)