您的位置:首页 > 移动开发 > Swift

从头开始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

@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封装成自己的无限循环广告控件。



好了,第三节《无限滚动广告》就到这里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: