美文网首页程序员iOS Developer我的Swift开发
Swift-UICollectionView实现照片墙,照片显示

Swift-UICollectionView实现照片墙,照片显示

作者: KennyHito | 来源:发表于2016-11-29 17:01 被阅读165次
个人链接
微信公众号.jpg
前言:</br>
  • UICollectionView类负责管理数据的有序集合以及以自定义布局的模式来呈现这些数据,它提供了一些常用的表格(table)功能,此外还增加了许多单栏布局。UICollectionView支持可以用于实现多列网格、 平铺的布局、 圆形的布局和更多的自定义布局,甚至你可以动态地改变它的布局。
  • 当将一个集合视图添加到您的用户界面,您的应用程序的主要工作是管理与该集合视图关联的数据。集合视图的数据源对象,是一个对象,符合 UICollectionViewDataSource 协议,提供由您的应用程序数据集合中视图分成单个的item,然后可以分为节为演示文稿中获取其数据。item是您想要呈现的数据的最小单位。例如,在照片的应用程序,item可能是一个单一的图像。集合视图使用一个cell来呈现item,这是您的数据源配置,并提供 UICollectionViewCell 类的一个实例。
  • 除了将它嵌入在您的用户界面,您可以使用 UICollectionView 对象的方法以确保item的可视化表示匹配您的数据源对象中的顺序。因此,每当您添加、 删除或重新排列您的集合中的数据,您可以使用此类的方法来插入、 删除和重新排列相应cell的状态。您还使用集合视图对象来管理所选的item。
  • 接下来写一个程序实现照片墙的功能,先看一下效果图:</br>
照片墙
代码分析:

1.创建collectionView

        layout = UICollectionViewFlowLayout.init()//初始化UICollectionViewFlowLayout
        layout.minimumLineSpacing = 10//垂直最小距离
        layout.minimumInteritemSpacing = 10//水平最小距离
        layout.itemSize = CGSize.init(width: 100, height:130)//item的大小
        
        collectionView = UICollectionView.init(frame: CGRect.init(x: 0, y: 0, width: width, height: height), collectionViewLayout: layout)//初始化UICollectionView
        collectionView.backgroundColor = UIColor.white//背景色
        collectionView.showsVerticalScrollIndicator = false//去除垂直滚动条
        collectionView.showsHorizontalScrollIndicator = false//去除水平滚动条
        collectionView.dataSource = self//代理方法
        collectionView.delegate = self
        self.view.addSubview(collectionView)//添加主视图
        collectionView.register(picCollectionViewCell.classForCoder() ,forCellWithReuseIdentifier: "cellID")//注册cell

2.自定制cell

class picCollectionViewCell: UICollectionViewCell {
    var iv:UIImageView?
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.createIv()
    }
    
    public func createIv() -> Void {
        iv = UIImageView.init(frame:CGRect.init(x: 0, y: 0, width: self.bounds.size.width, height: self.bounds.size.height))
        self.addSubview(iv!)
    }
   
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

3.图片详情页面

    let height = UIScreen.main.bounds.size.height
    let width = UIScreen.main.bounds.size.width
    
    var iv : UIImageView = UIImageView.init()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.white
        self.navigationItem.title = "详情"
        
        self.showiv()
    }
    
    func showiv() -> Void {
        iv.frame = CGRect.init(x: 0, y: 0, width: width, height: height)
        iv.contentMode = UIViewContentMode.scaleAspectFit
        self.view.addSubview(iv)
    }
时间: 2016.11.29 17:00
声明
  • 所有文章出自 Kenny Hito 的博客 !
  • 未经本人允许不得转载, 转载请标明来源与作者, 谢谢合作!

相关文章

  • Swift-UICollectionView实现照片墙,照片显示

    个人链接 博客园主页 : 博客园主页 GitHub : 我的GitHub iOS程序猿(媛)~~ : 这是我个人整...

  • jsvascript学习(十二)- Offset相关综合案例

    案例素材可到这里领取, 提取码:gseu 1. 照片墙案例 实现照片墙特效,点击图片可以让照片居中显示并有缓动特效...

  • MATLAB显示照片墙

    方法1: im_cell{1} = im1; im_cell{2} = im2; im = cell2mat(im...

  • IOS开发 照片墙案例

    本节学习内容: 1.照片墙的基本概念 2.照片墙的实现原理 3.照片墙的实现方法 1.创建丙个视图控器分别为VCR...

  • ios 实现照片墙

    iOS 的优势在于可以触摸和手势交互,我们会展示一些借助拖曳手势识别器 (pan gesture recogniz...

  • 照片墙

    【美印定制~九宫格照片墙】照片墙,可以放九张图片,时下最流行的墙上挂件想怎么摆就怎么摆,好看又有意义,️重要的价位...

  • 照片墙

    生活的点滴从拍照的哪一刻起……

  • 照片墙

  • 照片墙

    我一直想拥有一面属于自已的照片墙,以前旧房子潮湿,墙面粗燥,一大家子居住,二位老人年纪大,家中杂物又多,根本不适合...

  • 照片墙

    从6.5号到6.10号,混混厄厄的。印象最深的大抵就是职工餐厅那锅很带感的虾尾了。只可惜当时只顾着吃去了。 ...

网友评论

    本文标题:Swift-UICollectionView实现照片墙,照片显示

    本文链接:https://www.haomeiwen.com/subject/ctxzpttx.html