ios学习iOS TipsiOS开发技术分享

从头开始swift2.0 仿乐乐医项目(三)无限滚动广告

2015-11-26  本文已影响543人  a_mean

现在我们完成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封装成自己的无限循环广告控件。

好了,第三节《无限滚动广告》就到这里。

上一篇下一篇

猜你喜欢

热点阅读