Swift - 我重新加载后,CollectionViewCell标签正在移动位置

时间:2016-01-29 05:55:04

标签: ios swift uicollectionviewcell

我的UICollectionView包含一些UICollectionViewCell。这些单元格中的每一个都有两个标签,左上角的一个是该单元格的日期,另一个是货币金额。我有两个标签的位置由故事板中的约束设置。

货币标签来自CoreData,首次打开应用程序时,它显示如下。 http://i.imgur.com/dl4DGIh.png

我有一个按钮可以单击以向选择的任何一个单元格添加新的金额。该按钮将新金额保存到CoreData,然后调用self.collection.reloadItemsAtIndexPaths(self.collection.indexPathsForSelectedItems()!)

当单元格重新加载时,货币标签的位置与其他单元格不同。 http://i.imgur.com/tBgO7pi.png

调试器让我看到reloadItemsAtIndexPath带我进入cellForItemAtIndexPath函数并执行cell.dateAmount.text = "$\(Int(amount))"

除了标签的位置向上移动几个像素外,一切都按预期工作。有关可能导致此问题的任何建议吗?

2 个答案:

答案 0 :(得分:0)

这是因为你制作了宽度和高度限制。当字体大小改变时,内容向上(或向下)移动。解决方案只是删除它们。或者修复字体大小如下: enter image description here

答案 1 :(得分:0)

我不确定为什么重新加载单元格导致约束中断,但我通过将两个标签放在stackview中找到了解决方案。现在,当我更新标签时,它保持在原始位置,只有文本发生变化。