随着画面
我将在UIViewController
的基础上实现一个UICollectionView
。
下面是我的代码:
class SettingViewController: BaseViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
@IBOutlet var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 3
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! SettingCollectionViewCell
cell.backgroundColor = UIColor.greenColor()
cell.lb.text = "Something"
cell.img.image = UIImage(named: "setting")
cell.layer.borderColor = UIColor.lightGrayColor().CGColor
cell.layer.borderWidth = 1
return cell;
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let screen = UIScreen.mainScreen().bounds
return CGSize(width: CGFloat(screen.width/3 - 10), height: 120)
}
}
结果是这样的:
:)))
我真的疯了!
我实现了func sizeForItemAtIndexPath
来调整单元格的大小,但我得到的只是每个单元格之间的间距,甚至宽度都不一样,而且我不知道如何在设计中获得边框。
请救救我!
2条答案
按热度按时间jjhzyzn01#
这里的技巧是,我们需要创建custom
UICollectionViewFlowLayout
,如下所示:自定义集合布局.h
自定义集合布局.m
请原谅我提供
Objective-C
代码,但我们可以使用桥接头然后将此自定义布局用作:
x1c 0d1x灰色为集合视图,粉红色为单元格。
委派方法:
下面是输出:
现在,我们可以使用任何自定义单元格,并获得所需的外观。
希望这对你有帮助!
9o685dep2#
对于自调整单元,执行以下两种方法:
对于单元格之间相等间距,请实现此自定义流布局: