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

原创 2013年12月07日 07:54:59

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;


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS应用开发基础(四)基础知识(数据存储和多线程)

本文可能涉及很多零碎的知识点,其中包括iOS应用开发的相关基础知识。以后会针对每个条目在进行深入研究,这里只是先做一个相关知识的概述总结。iOS的数据存储大多数iOS程序其功能总结为:提供一套界面,帮...
  • es_tech
  • es_tech
  • 2017年01月25日 15:34
  • 98

iOS7应用开发5、视图控制器View Controller及其生命周期

1、UITextView: 该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容; 包含属性NSTextStorage *textStorage,该类是NSMutableAttribut...

iOS7应用开发7:自定义视图、手势操作

1、视图: #屏幕上表示某一个矩形区域;某个视图只能有一个父视图,但是可能有多个子视图; #UIWindow:屏幕视图,在整个视图结构体系的最上层,仅适用于ios应用; #添加视图的函数: - (vo...

国嵌应用开发班-多线程

  • 2012年12月10日 21:08
  • 1.14MB
  • 下载

Java应用开发多线程

  • 2012年06月27日 15:51
  • 616B
  • 下载

Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)

一、概述       关于Socket编程的基本方法在基础篇里已经讲过,今天把它给完善了。加入了多线程,这样UI线程就不会被阻塞;实现了客户端和服务器的双向通信,只要客户端发起了连接并成功连接后...
  • pkuyjxu
  • pkuyjxu
  • 2014年04月17日 16:18
  • 7839

Java多线程应用开发(二)

多线程开发不仅提升了了程序执行的效率,更是大大解决了单线程中所无法解决的同步问题,那么多线程开发是不是真的像我们想象的那么完美呢?        最近两个星期一直在做多线程开发,期间用多线程达到了许...

Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)

一、概述       关于Socket编程的基本方法在基础篇里已经讲过,今天把它给完善了。加入了多线程,这样UI线程就不会被阻塞;实现了客户端和服务器的双向通信,只要客户端发起了连接并成功连接后那么...

Android应用开发基础篇(5)-----Handler与多线程

一、概述        Handler这个类主要用来发送和处理消息的。它有多个发送消息函数,但只有一个处理消息函数handleMessage()。 二、要求        程序中有两个线...

Android应用开发学习笔记之多线程与Handler消息处理机制

作者:刘昊昱  博客:http://blog.csdn.net/liuhaoyutz   和JAVA一样,Android下我们可以通过创建一个Thread对象实现多线程。Thread类有多个构造函数,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS7应用开发10:blocks、多线程、滚动条视图
举报原因:
原因补充:

(最多只允许输入30个字)