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;
时间: 2024-08-08 00:30:01

iOS7应用开发10:blocks、多线程、滚动条视图的相关文章

IOS开发之----UIScrollView滚动条视图的使用

 - (void)viewDidLoad {       UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];       scrollView.contentSize = CGSizeMake(847, 1129);//滚动条视图内容范围的大小       scrollView.showsHorizontalScrollIndicator = FALSE;//水平滚动条是否显示 scro

Android开发中的多线程编程技术

Android开发中的多线程编程技术 [IT168技术]多线程这个令人生畏的"洪水猛兽",很多人谈起多线程都心存畏惧.在Android开发过程中,多线程真的很难吗?多线程程序的"麻烦"源于它很抽象.与单线程程序运行模式不同,但只要掌握了它们的区别,编写多线程程序就会很容易了.下面让我们集中精力开始学习吧! 多线程案例--计时器 我在给我的学生讲多线程的时候都会举一个计时器的案例,因为计时器案例是多线程的经典应用. 这个案例中,屏幕启动之后,进入如图8-1所示的界面.

android手机开发之网络多线程断点续传代码

本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多线程断点需要什么功能?难在哪里? 1.多线程下载, 2.支持断点.   使用多线程的好处:使用多线程下载会提升文件下载的速度.那么多线程下载文件的过程是:   (1)首先获得下载文件的长度,然后设置本地文件的长度.      HttpURLConnection.getContentLength();

C++开发:为什么多线程读写shared_ptr要加锁的详细介绍_C 语言

我在<Linux 多线程服务端编程:使用 muduo C++ 网络库>第 1.9 节"再论 shared_ptr 的线程安全"中写道: (shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,因为 shared_ptr 有两个数据成员,读写操作不能原子化.根据文档(http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm#ThreadSafety), shared_ptr 的线程

Windows 8风格应用开发入门 八 贴靠视图

如何切换出贴靠视图 第一步:水平方向全屏视图 开发入门 八 贴靠视图-windows7从入门到精通"> 第二步:通过边缘轻扫手势,向设备左端或右端进行贴靠 第三步:实现贴靠视图的效果 我们知道如何通过手势的操作切换出一个应用的贴靠视图了.

android开发-为什么我的滚动条没有滚动?

问题描述 为什么我的滚动条没有滚动? 代码如下:public class MainActivity extends ActionBarActivity { private ViewPager viewPager; private ImageView cursor; private Listlists=new ArrayList<>(); private TextView t1t2t3; private int currindex=0;//当前页卡编号 private int tpwidth;/

directx-win7中使用类似 Unity3d 和 Virtools之类的可视化开发工具时,场景视图渲染响应延迟

问题描述 win7中使用类似 Unity3d 和 Virtools之类的可视化开发工具时,场景视图渲染响应延迟 请问win7中使用类似 Unity3d 和 Virtools之类的可视化开发工具时,编辑界面中,场景视图渲染不及时响应编辑操作是什么原因? 例如:用鼠标选中一个场景物体,正常情况下,场景视图中被选中的物体应该有高亮线框表示该物体被选中了,但是在我的电脑上并没有显示出高亮线框,而在我下一次取消选择的时候,在场景视图中才出现表示选中物体的高亮线框. 上述只是其中一种情况,总之,就是视图中的

android开发-如何理解安卓开发当中对多线程和多进程

问题描述 如何理解安卓开发当中对多线程和多进程 如何理解安卓开发当中对多线程和多进程 如何理解安卓开发当中对多线程和多进程 解决方案 线程是程序执行的最小单位,线程通讯比较简单,进程相对独立.一个程序就是一个进程,一个程序执行的时候的每个任务就是一个线程.一个进程至少有一个线程,也可以有多个线程. 解决方案二: 一个进程包含多个线程 解决方案三: 多线程 多进程应该是系统概念 跟其他环境中概念相同

iOS7应用开发1、菜鸟那点儿事儿

序:今天开始新开一个坑,作为一个准备了许久却依然摆脱不了24k纯菜鸟身份的程序员,跟随Stanford的世界未来精英们一起学习iOS7应用开发的相关知识,同时也是为了自己以后的业余项目做准备,提升自己的工作筹码.我所follow的教程来自itunes上面斯坦福大学的公开课程<Developing iOS 7 Apps for iPhone and iPad>,很容易就能找到.这些博客除了作为追课过程中的笔记之外,可能也会有搜集到的与这次课相关的一些资料,和一些个人体会.只作为自己的记录,不敢保