Swift - 使用网格(UICollectionView)进行流布局
View Controller到界面上,这时我们可以看到已经同时添加了Collection View和Collection View
Cell控件。
--- ViewController.swift ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import UIKit class ViewController: UICollectionViewController { //课程名称和图片,每一门课程用字典来表示 let courses = [ [ "name" : "Swift" , "pic" : "swift.png" ], [ "name" : "OC" , "pic" : "oc.jpg" ], [ "name" : "java" , "pic" : "java.png" ], [ "name" : "php" , "pic" : "php.jpeg" ] ] override func viewDidLoad() { super .viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // 已经在界面上设计了Cell并定义了identity,不需要注册CollectionViewCell //self.collectionView.registerClass(UICollectionViewCell.self, // forCellWithReuseIdentifier: "ViewCell") //默认背景是黑色和label一致 self.collectionView?.backgroundColor = UIColor.whiteColor() } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // CollectionView行数 override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return courses.count; } // 获取单元格 override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { // storyboard里设计的单元格 let identify: String = "DesignViewCell" // 获取设计的单元格,不需要再动态添加界面元素 let cell = self.collectionView?.dequeueReusableCellWithReuseIdentifier( identify, forIndexPath: indexPath) as UICollectionViewCell // 从界面查找到控件元素并设置属性 (cell.contentView.viewWithTag( 1 ) as ! UIImageView).image = UIImage(named: courses[indexPath.item][ "pic" ]!) (cell.contentView.viewWithTag( 2 ) as ! UILabel).text = courses[indexPath.item][ "name" ] return cell } } |
--- Main.storyboard ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<? xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> < document type = "com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version = "3.0" toolsVersion = "6254" systemVersion = "14B25" targetRuntime = "iOS.CocoaTouch" propertyAccessControl = "none" useAutolayout = "YES" useTraitCollections = "YES" initialViewController = "fNw-sO-QDe" > < dependencies > < plugIn identifier = "com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version = "6247" /> </ dependencies > < scenes > <!--View Controller--> < scene sceneID = "wxT-ij-Le6" > < objects > < collectionViewController id = "fNw-sO-QDe" customClass = "ViewController" customModule = "SwiftInAction_008_015" customModuleProvider = "target" sceneMemberID = "viewController" > < collectionView key = "view" clipsSubviews = "YES" multipleTouchEnabled = "YES" contentMode = "scaleToFill" dataMode = "prototypes" id = "pK1-nH-r5x" > < rect key = "frame" x = "0.0" y = "0.0" width = "600" height = "600" /> < autoresizingMask key = "autoresizingMask" widthSizable = "YES" heightSizable = "YES" /> < color key = "backgroundColor" white = "0.66666666666666663" alpha = "1" colorSpace = "calibratedWhite" /> < collectionViewFlowLayout key = "collectionViewLayout" minimumLineSpacing = "10" minimumInteritemSpacing = "10" id = "UDB-fy-TG6" > < size key = "itemSize" width = "92" height = "97" /> < size key = "headerReferenceSize" width = "0.0" height = "20" /> < size key = "footerReferenceSize" width = "0.0" height = "0.0" /> < inset key = "sectionInset" minX = "0.0" minY = "0.0" maxX = "0.0" maxY = "0.0" /> </ collectionViewFlowLayout > < cells > < collectionViewCell opaque = "NO" clipsSubviews = "YES" multipleTouchEnabled = "YES" contentMode = "center" restorationIdentifier = "ViewCell" reuseIdentifier = "DesignViewCell" id = "FKz-79-V4r" > < rect key = "frame" x = "0.0" y = "0.0" width = "50" height = "50" /> < autoresizingMask key = "autoresizingMask" /> < view key = "contentView" opaque = "NO" clipsSubviews = "YES" multipleTouchEnabled = "YES" contentMode = "center" > < rect key = "frame" x = "0.0" y = "0.0" width = "92" height = "97" /> < autoresizingMask key = "autoresizingMask" /> < subviews > < imageView userInteractionEnabled = "NO" tag = "1" contentMode = "scaleToFill" horizontalHuggingPriority = "251" verticalHuggingPriority = "251" fixedFrame = "YES" translatesAutoresizingMaskIntoConstraints = "NO" id = "ZmJ-ad-pZs" > < rect key = "frame" x = "4" y = "4" width = "75" height = "65" /> </ imageView > < label opaque = "NO" clipsSubviews = "YES" userInteractionEnabled = "NO" tag = "2" contentMode = "left" horizontalHuggingPriority = "251" verticalHuggingPriority = "251" fixedFrame = "YES" text = "Label" textAlignment = "center" lineBreakMode = "tailTruncation" baselineAdjustment = "alignBaselines" adjustsFontSizeToFit = "NO" translatesAutoresizingMaskIntoConstraints = "NO" id = "U4J-Ys-QBF" > < rect key = "frame" x = "4" y = "71" width = "75" height = "21" /> < fontDescription key = "fontDescription" type = "system" pointSize = "17" /> < color key = "textColor" cocoaTouchSystemColor = "darkTextColor" /> < nil key = "highlightedColor" /> </ label > </ subviews > < color key = "backgroundColor" white = "0.0" alpha = "0.0" colorSpace = "calibratedWhite" /> </ view > </ collectionViewCell > </ cells > < collectionReusableView key = "sectionHeaderView" opaque = "NO" clipsSubviews = "YES" multipleTouchEnabled = "YES" contentMode = "center" id = "rmh-sg-HAy" > < rect key = "frame" x = "0.0" y = "0.0" width = "600" height = "20" /> < autoresizingMask key = "autoresizingMask" /> </ collectionReusableView > < connections > < outlet property = "dataSource" destination = "fNw-sO-QDe" id = "LWA-AL-0di" /> < outlet property = "delegate" destination = "fNw-sO-QDe" id = "RRE-KH-WU2" /> </ connections > </ collectionView > </ collectionViewController > < placeholder placeholderIdentifier = "IBFirstResponder" id = "tTf-V2-wvH" userLabel = "First Responder" sceneMemberID = "firstResponder" /> </ objects > < point key = "canvasLocation" x = "174" y = "137" /> </ scene > </ scenes > </ document > |
Swift - 使用网格(UICollectionView)进行流布局的更多相关文章
- Swift - 设置网格UICollectionView的单元格间距
要设置单元格cell的间距(水平间距,垂直间距)可进行如下设置: 方法1:在storyboard中设置 选择Collection View后在面板里设置Min Spacing相关属性(这里也可以设置单 ...
- Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面
网格UICollectionView除了使用流布局,还可以使用自定义布局.实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法: 1 2 3 4 5 6 7 ...
- Swift:用UICollectionView整一个瀑布流
本文的例子和Swift版本是基于Xcode7.2的.以后也许不知道什么时候会更新. 我们要干点啥 用新浪微博的Open API做后端来实现我们要提到的功能.把新浪微博的内容,图片和文字展示在colle ...
- 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
前言 API 不熟悉导致的问题,想当然的去理解果然会出问题,这里记录一下 UICollectionView 使用问题. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cn ...
- 前不久一个swift项目用uicollectionview 用sdwebimage 加载图片,发生内存猛增,直接闪退的情况,简单说一下解决方案。
1.首先在appdelegate方法 didFinishLaunchingWithOptions SDImageCache.sharedImageCache().maxCacheSize=1024*1 ...
- [Swift]LeetCode1001. 网格照明 | Grid Illumination
On a N x N grid of cells, each cell (x, y) with 0 <= x < N and 0 <= y < N has a lamp. In ...
- Swift UITableView嵌套UICollectionView点击事件冲突(点击事件穿透)
不管是啥都响应tableviewcell class JYShopCertificationCell: UITableViewCell { override func hitTest(_ point: ...
- ios项目里扒出来的json文件
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...
随机推荐
- Python 第七篇:socket编程
一:socket基础: 1.1:Socket基础: socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用[打开][读写][关闭]模式来操作.socket就是该模 ...
- [置顶] ssize_t与size_t-linux
ssize_t: signed size_t [注释:signed 有符号] size_t: 标准C库中定义的,应为unsigned int [注释:unsigned 无符号] 一.size_t 增强 ...
- linux命令: mount
mount使用示例: #mkdir -p /mnt/usbhd1 注:建立目录用来作挂接点(mount point) #mount -t ntfs /dev/sdc1 /mnt/usbhd1 (-t ...
- linux: 鸟哥的私房菜
鸟哥的私房菜 http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php
- Delphi控件下载网
http://delphi-z.ru/index.php http://developer.team/delphi/
- 修改OpenSSL默认编译出的动态库文件名称
在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中 ...
- Spring MVC 遇到的一点点问题(转)
今天下午下班之前看了看凯歌给的Spring Training的教程的lab篇,我之前有跟着做没有遇到什么问题,但是到了跟Spring MVC integrating的时候,遇到一点点有趣的事情. 这个 ...
- UIViewController加载过程
UIViewController是视图和数据的桥梁,UIViewController是所有controller的基类,ios内置了很多试图控制器,如导航控制器,tableViewController等 ...
- 通过demo搞懂encode_utf8和decode_utf8
perl 编码问题: use utf8表示代码使用UTF-8写的 [root@wx03 0710]# cat a1.pl #use utf8; my $str='测试utf8字符集'; print $ ...
- hdu4725 The Shortest Path in Nya Graph
这道题看了下很多人都是把每一层拆成两个点然后建图做的. 我的思路很直接,也不用建图,直接在更新每个点时更新他相邻的边和相邻的层,当然前提是每个点只更新一次,每个层也只更新一次,这样才能确保时间复杂度. ...