UITableViewCell的视图帧在设置后会发生变化

时间:2015-08-07 15:41:54

标签: ios objective-c iphone uitableview

我有一个动态单元格,在收到我们服务器的响应后会被添加进来。根据该响应,它将以不同的方式配置单元。使用一个特定响应进行配置时,Title标签的框架在添加后似乎会重置。

我在整个代码中设置了断点,并将其缩小到调用tableView:heightForRowAtIndexPath:后的某个时间。直到这种方法一直很好。我不确定在heightForRowAtIndexPath:之后还有其他内容被调用,所以我不确定在哪里设置断点进行调查。

如果需要,我可以发布一些代码,不确定现在发布哪些代码来帮助解决问题。

更多信息:

  • 任何数据源方法都不会触及这些框架
  • 框架的高度是问题,在heightForRowAtIndexPath:被调用后的某个时刻它从17变为8。
  • 这只发生在运行iOS 7.1的iPhone 4s,iPhone 5和iPhone 5s上,这让我相信它是一个32位处理器问题,以及7.1中假设32位处理器的一些代码?在5s不确定。

非常感谢任何关于在哪里观看的指导。如果你们需要任何代码,我可以发布一些代码,只是不确定哪些代码现在可以帮助你调试,因为我甚至不完全确定在heightForRowAtIndexPath:之后调用了哪些方法正在搞乱我的框架。

提前致谢!

快速编辑:使用begin / endUpdates块添加行。它是唯一添加的行。我在下面发布了以下代码:

if ([self.tableView numberOfRowsInSection:AccountHomeTableSectionBody] == [self numberOfCellsWithPossibleDynamicPlacementCells] - 1) {
        [self.tableView beginUpdates];
        [self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:rowPosition inSection:AccountHomeTableSectionBody]] withRowAnimation:UITableViewRowAnimationTop];
        [self.tableView endUpdates];
    }

1 个答案:

答案 0 :(得分:0)

你有没有覆盖 - (无效)layoutSubviews?这似乎是tableview单元格的排列方式。