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

问题描述 投票:1回答:2

我有一个 UICollectionView 其中包含一些 UICollectionViewCell's. 每一个单元格都有两个标签,左上方的一个是该单元格的日期,另一个是货币金额。我在故事板中通过约束条件设置了这两个标签的位置。

货币标签来自CoreData,第一次打开应用时就会显示。

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

当单元格重新加载时,货币标签的位置与其他单元格不同。

调试器让我看到 reloadItemsAtIndexPath 是带我到 cellForItemAtIndexPath 功能和执行 cell.dateAmount.text = "$\(Int(amount))".

除了标签的位置被上移了几个像素之外,一切都按我的意图工作。 有什么建议可以告诉我是什么原因造成的吗?

ios swift uicollectionviewcell
2个回答
0
投票

这是因为你做了宽度和高度的限制,当字体大小改变时,内容会向上(或向下)移动,解决的办法是删除它们,或者像这样固定字体大小。enter image description here


0
投票

我不知道为什么重新加载单元格会导致约束条件被破坏 但我找到了一个解决方案 把两个标签放在一个堆栈视图中。 现在,当我更新标签时,它保持在原来的位置,只有文本变化。

© www.soinside.com 2019 - 2024. All rights reserved.