【发布时间】:2016-03-02 17:35:07
【问题描述】:
我正在使用自动布局来确定单元格大小(固定为可变高度)并在情节提要中设置所有必要的约束。只要我不更改约束,自动布局就可以正常工作。
但在运行时我必须向某些单元格添加按钮。我删除最后一个标签的底部约束,插入按钮并向上面的标签添加一个约束,一个前导约束到单元格,一个到单元格底部。
问题是,在此之后单元格大小不会更新。我试图在单元格和集合视图中调用 LayoutIfNeeded,但这不起作用。我认为约束设置正确。按钮出现在正确的位置,但单元格只保留没有按钮的单元格的高度。如何告诉 CollectionView 更新单元格大小?
【问题讨论】:
-
你试过
func reloadItemsAtIndexPaths(indexPaths: [NSIndexPath])吗? -
我试过了:片刻单元格高度会更新到正确的时刻。但随后再次调用 cellForItemAtIndexPath,单元格高度重置并再次调用 reloadItemsAtIndexPaths。它会导致无限循环的大小调整。
-
你用什么方法改变约束和添加按钮?
-
在 GetCell 中。我需要 0-5 个与单元格左侧对齐的按钮。我想我会制作两个原型单元,一个有按钮,一个没有。
标签: ios xamarin autolayout uicollectionview ios-autolayout