Swift使用CollectionView实现广告栏滑动效果

 更新时间:2019年06月22日 15:29:37   作者:Stevin的技术博客  
这篇文章主要为大家详细介绍了Swift使用CollectionView实现广告栏滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Swift实现广告栏滑动效果的具体代码,供大家参考,具体内容如下

创建一个类:PlayCollectionViewController.swift

//cell重用标识
private let reuseIdentifier = "reuseIdentifier"
class PlayCollectionViewController: UICollectionViewController {

 //页面个数
 private let pageCount = 6
 //布局对象(自定义布局)
 private var layout: UICollectionViewFlowLayout = PlayLayout()

 init() {
  super.init(collectionViewLayout: layout)
 }

 required init?(coder aDecoder: NSCoder) {
  fatalError("init(coder:) has not been implemented")
 }

 override func viewDidLoad() {
  super.viewDidLoad()

  //注册cell
  collectionView?.registerClass(NewfearureCell.self, forCellWithReuseIdentifier: reuseIdentifier)
 }

 //MARK: - UICollectionDataSource
 override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  return pageCount
 }

 override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

  let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! NewfearureCell
  cell.imageIndex = indexPath.item
  return cell
 }
}

自定义CollectionView的cell

//MARK: - 在这里我们依然在(PlayCollectionViewController.swift的文件中)自定义collectionViewCell
class NewfearureCell: UICollectionViewCell {

 //保存图片索引
 private var imageIndex:Int? {
  didSet {
   //根据页码创建图片名字(需要每张图片的名称只有最有最有一个数不同)
   iconView.image = UIImage(named: "image_\(imageIndex!)")
  }
 }

 override init(frame: CGRect) {
  super.init(frame: frame)

  //初始化UI
  setupUI()
 }
 required init?(coder aDecoder: NSCoder) {
  fatalError("init(coder:) has not been implemented")
 }

 private func setupUI() {

  //添加子控件到contentView
  contentView.addSubview(iconView)
  //布局子控件位置(填充屏幕)
  iconView.xmg_Fill(contentView)
 }

 //MARK: 懒加载
 private lazy var iconView = UIImageView()
}

继承UICollectionViewFlowLayout,自定义布局

private class PlayLayout: UICollectionViewFlowLayout {

 //重写系统准备布局的方法
 override func prepareLayout() {

  //设置layout布局
  itemSize = UIScreen.mainScreen().bounds.size
  minimumInteritemSpacing = 0
  minimumLineSpacing = 0
  scrollDirection = UICollectionViewScrollDirection.Horizontal

  //设置其他属性
  collectionView?.showsHorizontalScrollIndicator = false
  collectionView?.bounces = false
  collectionView?.pagingEnabled = true
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 利用Swift实现一个响应式编程库

    利用Swift实现一个响应式编程库

    最近在学习swift,最近有空所以总结一下最近学习的内容,下面这篇文章主要给大家介绍了关于利用Swift实现一个响应式编程库的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • Swift中排序算法的简单取舍详解

    Swift中排序算法的简单取舍详解

    对于排序算法, 通常简单的, 为大家所熟知的有, 选择排序, 冒泡排序, 快速排序, 当然还有哈希, 桶排序之类的, 本文仅比较最为常见的选择, 冒泡和快排,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-03-03
  • RxSwift实现替换delegate的方法示例

    RxSwift实现替换delegate的方法示例

    这篇文章主要给大家介绍了关于RxSwift实现替换delegate的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用RxSwift具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • swift实现颜色渐变以及转换动画

    swift实现颜色渐变以及转换动画

    这篇文章主要为大家详细介绍了swift实现颜色渐变以及转换动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Swift心得笔记之函数

    Swift心得笔记之函数

    函数是执行特定任务的代码自包含块。通过给定一个函数名称标识它是什么,并在需要的时候使用该名称来调用函数以执行任务。今天我们就来探讨下swift中的函数问题。
    2015-04-04
  • 深入理解Swift中的访问控制关键字

    深入理解Swift中的访问控制关键字

    这篇文章主要给大家介绍了Swift中访问控制关键字的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Swift实现堆排序算法的代码示例

    Swift实现堆排序算法的代码示例

    堆排序(HeapSort)是一树形选择排序,堆排序的时间复杂度O(nlogn),这里我们来看一下Swift实现基堆排序算法的代码示例,首先对堆排序算法的基本概念作一个了解:
    2016-06-06
  • Swift实现表格视图单元格单选(1)

    Swift实现表格视图单元格单选(1)

    这篇文章主要为大家详细介绍了Swift实现表格视图单元格单选,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 通过Notification.Name看Swift是如何优雅的解决String硬编码

    通过Notification.Name看Swift是如何优雅的解决String硬编码

    这篇文章主要给大家介绍了通过Notification.Name看Swift是如何优雅的解决String硬编码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Swift利用Decodable解析JSON的一个小问题详解

    Swift利用Decodable解析JSON的一个小问题详解

    这篇文章主要给大家介绍了关于Swift利用Decodable解析JSON的一个小问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04

最新评论