加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift中用CollectionView做广告栏滑动效果

发布时间:2020-12-14 07:05:59 所属栏目:百科 来源:网络整理
导读:创建一个类:PlayCollectionViewController.swift //cell重用标识 private let reuseIdentifier = "reuseIdentifier" class PlayCollectionViewController: UICollectionViewController { //页面个数 private let pageCount = 6 //布局对象(自定义布局) priva

创建一个类: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
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读