从头开始swift2.0 仿乐乐医项目(三)无限滚动广告
2015-12-25 22:41
363 查看
现在我们完成tableView的上面部分,也就是headView。
新建一个xib之前,我们可以先建一个group,专门放MainViewController相关的文件。
无法同时创建xib,那我们自己创建一个,也叫MainHeadView吧
然后手动把它们关联起来
OK,现在我们开始对MainHeadView布局。你会发现这个布局似乎有些大,但却不能拖动改变它的大小?怎么回事呢,我们需要把它的size改为Freeform模式。
然后我们先把它设置为600x300这样的尺寸吧
放入一个ScrollView,添加以下约束
再放一个PageControl,与ScrollView底部对齐,水平居中
把最外层的View背景设置为浅灰色,等一下可以直接调整一个间隔,再放一个普通的View,设置背景为白色,紧接在ScrollView的下面,高度为95
在白色View内添加一个水平居中的ImageView,距离顶部8,宽高都是48,再设置一张图片
左右各添加一个ImageView,与中间的控件顶部对齐,左右间距都是40
分别在图标下面添加一个Label,添加约束
再添加一个白色View,距离上边8,左右填满,高度为50
最后添加左右两个Label,间距为19,垂直居中
ok,xib我们这就写完了,转到关联的MainHeadView.swift,暂时我们只申明scrollView和pageControl
在MainHeadView.swift中申明一个类变量,方便外面直接引用这个xib
然后回到MainViewController中,把headView添加到tableView中去
运行起来,我们会看到之前做的效果已经出来了,
现在我们来为ScrollView添加一组无限循环的图片,先为MainHeadView添加UIScrollViewDelegate监听
在awakeFromNib中添加图片,设置监听
回到xib中设置一下ScrollView,运行一下看看效果
可以看到拖到第四个图片的时候,仍然可以向右拖动,并且pageControl自动回到第一个了,同样在第一个时也可以向左拖动到最后一个,这样就达到了无限循环的滚动广告了。
然后我们添加一个计时器,让它自动滚动。
最后在awakeFromNib中调用startTimer,运行后可以看到每隔3秒幻灯会自动切换到下一页,并且将在用户手动切换时重新计时,如果用户拖住不放的话也是不会触发切换的,我们后面可以扩展一下把这个ScrollView封装成自己的无限循环广告控件。
好了,第三节《无限滚动广告》就到这里。
新建一个xib之前,我们可以先建一个group,专门放MainViewController相关的文件。
无法同时创建xib,那我们自己创建一个,也叫MainHeadView吧
然后手动把它们关联起来
OK,现在我们开始对MainHeadView布局。你会发现这个布局似乎有些大,但却不能拖动改变它的大小?怎么回事呢,我们需要把它的size改为Freeform模式。
然后我们先把它设置为600x300这样的尺寸吧
放入一个ScrollView,添加以下约束
再放一个PageControl,与ScrollView底部对齐,水平居中
把最外层的View背景设置为浅灰色,等一下可以直接调整一个间隔,再放一个普通的View,设置背景为白色,紧接在ScrollView的下面,高度为95
在白色View内添加一个水平居中的ImageView,距离顶部8,宽高都是48,再设置一张图片
左右各添加一个ImageView,与中间的控件顶部对齐,左右间距都是40
分别在图标下面添加一个Label,添加约束
再添加一个白色View,距离上边8,左右填满,高度为50
最后添加左右两个Label,间距为19,垂直居中
ok,xib我们这就写完了,转到关联的MainHeadView.swift,暂时我们只申明scrollView和pageControl
@IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var pageControl: UIPageControl!
在MainHeadView.swift中申明一个类变量,方便外面直接引用这个xib
class var mainHeadView:MainHeadView{ get{ let headView = NSBundle.mainBundle().loadNibNamed("MainHeadView", owner: nil, options: nil).last as! MainHeadView headView.frame = CGRectMake(0,0,UIScreen.mainScreen().bounds.width,281) return headView } }
然后回到MainViewController中,把headView添加到tableView中去
//设置tableHeaderView self.tableView.tableHeaderView = MainHeadView.mainHeadView
运行起来,我们会看到之前做的效果已经出来了,
现在我们来为ScrollView添加一组无限循环的图片,先为MainHeadView添加UIScrollViewDelegate监听
class MainHeadView: UIView ,UIScrollViewDelegate
在awakeFromNib中添加图片,设置监听
回到xib中设置一下ScrollView,运行一下看看效果
可以看到拖到第四个图片的时候,仍然可以向右拖动,并且pageControl自动回到第一个了,同样在第一个时也可以向左拖动到最后一个,这样就达到了无限循环的滚动广告了。
然后我们添加一个计时器,让它自动滚动。
最后在awakeFromNib中调用startTimer,运行后可以看到每隔3秒幻灯会自动切换到下一页,并且将在用户手动切换时重新计时,如果用户拖住不放的话也是不会触发切换的,我们后面可以扩展一下把这个ScrollView封装成自己的无限循环广告控件。
好了,第三节《无限滚动广告》就到这里。
相关文章推荐
- 从头开始swift2.0 仿乐乐医项目(二)列表的填充
- 从头开始swift2.0 仿乐乐医项目(一)开发前的准备
- Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等
- swift中String和Character的使用与总结
- Swift 基本运算符
- Swift - 使用NSNotificationCenter发送通知,接收通知
- swift有关setValue崩溃,报告错误为NSCFString longValue unrecognized selector sent to instance
- Introducing Protocol-Oriented Programming in Swift 2
- Swift 解包
- swift NSUserDefaults封装
- iOS swift设置导航栏(navigationBar)背景颜色,标题颜色和字体大小,item颜色
- Swift中的基础知识总结(四)
- Swift中的基础知识总结(三)
- Swift中的基础知识总结(二)
- Swift里的CAP理论和NWR策略
- swift Dictionary操作
- Swift中的基础知识总结(一)
- swift学习笔记之navigationController的设置以及使用
- Swift ?? 符号的使用
- Swift中的required修饰符