Ios UICollectionView:按按钮更新flowLayout
我有两种看法。父视图的内容视图是Ios UICollectionView:按按钮更新flowLayout,ios,objective-c,swift,Ios,Objective C,Swift,我有两种看法。父视图的内容视图是UICollectionView,例如UIButton。如何通过按下按钮更改项目的大小(例如+5px)?您可以使用集合视图单元格高度设置变量,当单击按钮增加此高度时,只需重新加载集合视图,您的单元格就会更高 var CELL_HEIGHT = 44 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, s
UICollectionView
,例如UIButton
。如何通过按下按钮更改项目的大小(例如+5px)?您可以使用集合视图单元格高度设置变量,当单击按钮增加此高度时,只需重新加载集合视图,您的单元格就会更高
var CELL_HEIGHT = 44
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSize(width: CELL_WIDTH, height:CELL_HEIGHT)
}
@IBAction func buttonClick(sender: AnyObject) {
CELL_HEIGHT = CELL_HEIGHT + 5
self.collectionView.reloadData()
}
您可以使用集合视图单元格高度的变量,当单击按钮增加此高度时,只需重新加载集合视图,您的单元格就会更高
var CELL_HEIGHT = 44
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSize(width: CELL_WIDTH, height:CELL_HEIGHT)
}
@IBAction func buttonClick(sender: AnyObject) {
CELL_HEIGHT = CELL_HEIGHT + 5
self.collectionView.reloadData()
}
重载数据()对我不起作用。但每次值更改时,我都尝试设置新的UICollectionViewFlowLayout。。。我不确定这是否是一个好的解决方案,但它是有效的。您需要调用
invalidateLayout()
,让项目重新读取高度!谢谢!这是最好的解决方案!重载数据()对我不起作用。但每次值更改时,我都尝试设置新的UICollectionViewFlowLayout。。。我不确定这是否是一个好的解决方案,但它是有效的。您需要调用invalidateLayout()
,让项目重新读取高度!谢谢!这是最好的解决方案!