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

8 篇文章 0 订阅

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值