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;