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
 }
}

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

(0)

相关推荐

  • 利用swift实现卡片横向滑动动画效果的方法示例

    本文主要给大家介绍了关于利用swift实现卡片横向滑动动画效果的相关资料,分享出来供大家参考学习,下面来一起看看详细的介绍吧. 根据惯例,首先上效果图: 那天去面试,面试官突然拿出手机点开了一个app,自个在那点了一会,然后问我 这个效果怎么实现,当时一看可以滑动,肯定用scrollView 或者 collectionView实现,就大概的说了下.今天刚好闲下来,就敲一敲这个效果. 先来分析下这个效果: 卡片是横向滚动,并且每个卡片的位置都是保持在屏幕中间的,而且 左右相邻的卡片都露出来一点边

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

    本文实例为大家分享了Swift实现广告栏滑动效果的具体代码,供大家参考,具体内容如下 创建一个类:PlayCollectionViewController.swift //cell重用标识 private let reuseIdentifier = "reuseIdentifier" class PlayCollectionViewController: UICollectionViewController { //页面个数 private let pageCount = 6 //布局

  • Swift 3.1聊天界面键盘效果的实现详解

    前言 最近写的 Swift 项目里要实现一个聊天界面,在处理键盘弹出的时候遇到了一点麻烦. 麻烦就在于键盘弹出后如何处理屏幕和键盘的关系 经过一番死磕,终于做出了想要的效果,效果如下: 注:原本项目是 Swift 2.3 写的,为了写这篇博客,用 Swift 3.1 重新实现了一遍. 感受:方法名真的缩短了不少,

  • 使用Swift实现iOScollectionView广告无限滚动效果(DEMO)

    今天公司里的实习生跑过来问我一般App上广告的无限滚动是怎么实现的,刚好很久没写博客了,就决定写下了,尽量帮助那些处于刚学iOS的程序猿. 做一个小demo,大概实现效果如下图所示: 基本实现思路: 1. 在你需要放置无限滚动展示数据的地方把他的数据,在原本的基础上把你要展示的数据扩大三倍.(当然扩大两倍也是可以的,三倍的话,比较好演示) // MARK: - 设置数据源 func collectionView(_ collectionView: UICollectionView, number

  • Swift实现3D轮播图效果

    本文实例为大家分享了Swift实现3D轮播图效果的具体代码,供大家参考,具体内容如下 整天逛淘宝,偶尔有一天看到其中的展示页有个看起来很炫的效果,闲来无事就试着写一个出来,先来看效果: 简单记一下思路,这里我选择使用UICollectionView控件,先根据其复用和滚动的特性做出无限轮播的效果,关键代码: //数据源数组 let totalCount = 100 var models: [String] = [String]() { didSet { //判断元素个数 if models.co

  • Mootools 1.2教程 滑动效果(Slide)

    基本用法 就像我们前面看过的所有类一样,我们在把这个类应用到一个元素上面时,我们要做的第一件事就是初始化一个新的Fx.Slide实例. 首先,让我们为滑动元素建立一个HTML文件. 参考代码: 复制代码 代码如下: <div id="slide_element" class="slide">这里是要滑动显示的内容.</div> 我们的CSS也不需要任何修饰. 参考代码: 复制代码 代码如下: .slide { margin: 20px 0;

  • swift实现自动轮播图效果(UIScrollView+UIPageControl+Timer)

    本文实例为大家分享了swift实现自动轮播图效果的具体代码,供大家参考,具体内容如下 比较简单,原理就不说了,这里只做记录: 代码如下: 1.准备 var pageControl:UIPageControl? var myscrollView:UIScrollView? var myTimer:Timer? var mycurrentPage:NSInteger? var courses = [ ["name":"first","pic":&qu

  • 基于Vue实现页面切换左右滑动效果

    基于Vue的页面切换左右滑动效果,具体内容如下 HTML文本页面: <template> <div id="app> <transition :name="direction" mode="out-in"> <!--动态获得transition 的name值--> <router-view class="app-view" wechat-title></router-vi

  • Android实现左右滑动效果的方法详解

    本示例演示在Android中实现图片左右滑动效果. 关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现.接下来就让我们开始实现这种效果.为了方便大家理解,我们先来看一下效果图:主要效果图如下图:    接下来我们看一下程序结构图: MainActivity文件中代码: 复制代码 代码如下: package com.android.flip;import android.app.Activity;import a

  • Swift开发之UITableView状态切换效果

    效果 源码 https://github.com/YouXianMing/Swift-Animations // // TableViewTapAnimationController.swift // Swift-Animations // // Created by YouXianMing on 16/8/7. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit class TableViewTapAni

  • js仿小米手机上下滑动效果

    本文实例为大家分享了js上下滑动效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 512px; height: 400px; margin:100px auto; overflo

随机推荐