iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView

图片轮播器程序实现要求:


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第1张图片


源代码下载地址:点击打开链接


1、UIKit复习


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第2张图片


2、代理设计模式 --- 重要


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第3张图片


注:只有继承自UIControl,才能addTarget,否则需要以代理实现监听!!


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第4张图片


3、ScrollView常用属性


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第5张图片


注:如果UIScrollView无法滚动,可能是以下原因:没有设置contentSize;scrollEnabled = NO;没有接收到触摸事件:userInteractionEnabled = NO;没有取消autolayout功能,如果在Storyboard中添加了ScrollView的子控件,要想scrollView滚动,必须取消autolayout!

在实际应用中,通常不在Storyboard中添加ImageView控件,而是用代码代替:



补充:自动布局:苹果为了程序员能够将注意力集中在程序上,而不要在代码中过多的使用frame。“参照”任何一个控件,都可以参照另外一个控件定义出准确的位置。


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第6张图片


4、放大和缩小



iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第7张图片


5、自动布局的简单使用


在Storyboard中可以设置相对尺寸。


6、NSTimer使用


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第8张图片


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第9张图片


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第10张图片


7、提示框




8、NSTimer的运行循环


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第11张图片


此时,一旦在界面上有滚动时间,默认的监听方法停止监听,等待滚动事件结束后,继续监听。现象:在倒计时中途若去滚动文字,会导致倒计时停止,滚动结束后,继续倒计时。

改:



此时,若有滚动事件,时钟同样触发。


9、图片轮播器思路 --- 重要


9.1 搭建界面


1> 添加UIScrollView成员,并对其进行懒加载,以3.5英寸屏(320x480),直接设置frame

2> 设置图片,注:将5个UIImage设置到5个UIImageView中,并都添加到self.scrollView中

3> 采用块代码遍历,计算每个UIImageView的位置


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第12张图片


4> 设置图片数宏,并在scrollView懒加载中设置其contentSize属性,即可实现滚动!!


9.2 实现细节


1> 分页+取消水平滚动+取消弹簧效果


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第13张图片


2> 分页控件


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第14张图片


注:分页控件的大小会自己根据页面数量自动计算size;


3> 滚动视图每翻一页,更新UIPageControl--- 添加UIScrollView的代理


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第15张图片


4> 优化代码,对分页控件进行懒加载,并添加监听方法,调整滚动视图位置


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第16张图片


5> 添加时钟


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第17张图片


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第18张图片


注:此时时钟累计,一旦拖住不动,松手后连续滚动

改:修改NSTimer的运行循环模式(上述)


6> 优化时钟和UIScrollView拖拽


iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView_第19张图片




你可能感兴趣的:(UI,ios开发,uiscrollview)