【问题标题】:UITableViewCell and setting subview frames in layoutSubviews doesn't work first timeUITableViewCell 和 layoutSubviews 中的设置子视图框架第一次不起作用
【发布时间】:2023-03-14 16:48:01
【问题描述】:

我在故事板中有一个原型 UITableViewCell 子类,它使用自动布局(但单元格本身没有任何使用自动布局的元素)。我正在尝试在其 layoutSubviews 方法中手动设置子视图的框架,但这仅在重用单元格或突出显示时才有效。第一次显示单元格时,设置子视图框架没有效果(但调用该方法并设置背景颜色和其他东西工作正常)。我有什么遗漏吗?

编辑:好吧,我的行为是错误的,似乎在重用单元格时,子视图框架再次重置。

【问题讨论】:

  • 你在设置框架后打电话给setNeedsLayout吗?
  • 在我正在编辑的子视图上?是的,试过了。
  • layoutIfNeeded 工作吗?
  • 调用 layoutIfNeeded 会完全停止子视图的布局(即使选择了单元格)。也只是编辑了我的问题,因为我对行为有误。
  • 您能否在对象浏览器打开的情况下显示在界面构建器中选择的单元格的屏幕截图?

标签: ios objective-c uitableview


【解决方案1】:

如果要强制单元格调用 layoutSubviews 可能需要在 awakeFromNib 中使用 setNeedsLayout 和 layoutIfNeeded。

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多