【问题标题】:UITableViewCell's view's frames changing after being setUITableViewCell 视图框架在设置后发生变化
【发布时间】:2015-08-07 15:41:54
【问题描述】:

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

我在我的代码中设置了断点,并将其范围缩小到在调用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];
    }

【问题讨论】:

    标签: ios objective-c iphone uitableview


    【解决方案1】:

    您是否覆盖了 -(void)layoutSubviews?这似乎是 tableview 单元格的排列位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      相关资源
      最近更新 更多