首页 > 解决方案 > iOS 13 UITableViewCell | 子视图被剪掉

问题描述

所以我有一个UITableView包含一个UITableViewCelltableView.header设置为视差标题的。有UITableViewCell某些UIViews 被设置为 Top 的负约束,并且在iOS-12上完美显示,而在iOS-13UIView上观察时,在 Parallax Header 上显示的s 被剪裁。我已经尝试了所有可能的解决方案,但不幸的是它仍然显示相同。我的应用程序选择退出 SwiftUI 并仍在运行旧代码。我什至试图改变zIndex孩子的,UIView但还是一样。以下是一些快照和一些代码:

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code

    self.PriceView.layer.zPosition = 1
    self.PriceView.bringSubviewToFront(self.contentView)
    self.PriceView.setNeedsDisplay()
}

此代码适用于iOS-12但不适用于iOS-13

更新:

Apple 的iOS-13变更日志/文档建议:

UITableViewCell 类的 contentView 属性始终与相邻附件边对边布局,无论是在前边还是尾边。这简化了布局代码,因此想要正确的默认偏移量的开发人员不再需要根据尾部是否有附件将其内容与内容视图边框或布局边距对齐。您现在应该始终在单元格内容视图的布局边距上布置他们的代码,以获得默认的系统插图。这些插图将根据单元格中可见的附件自动调整,以匹配系统的默认间距。(48214114)

这对我来说有点不清楚,如果有人可以在这里帮助我。

以下是有关它在iOS-12中的显示方式的快照,这是必需的,以及它在iOS-13中的显示方式分别为:

在此处输入图像描述

在这里观察iOS-13

在此处输入图像描述

这也是我的约束UITableViewCell布局PriceView

在此处输入图像描述

我需要在两个操作系统上保持一致。非常感谢您的帮助!

标签: ios12ios13xcode11swift5.1

解决方案


哇!我终于弄明白了。因此,在默认情况下,它在iOS-12上运行,但在iOS-13UITableViewCell问题中描述的更改之后,它停止工作。这是我所做的:

  1. 首先,在Size Inspector中,ContentViewofUITableViewCell被设置为Safe Area Layout Guide我关闭和打开的位置Safe Area Relative Margins,同样我对孩子做了同样的事情,就像在PriceView中一样。
  2. 其次,在Attributes Inspector中,ContentView's 和' 都打开UITableViewCell了它们的属性,我只是将其关闭Autoresize Subviews

瞧!有用。希望任何可能有这些UITableViewCell问题的人,请注意,现在它都是相对的


推荐阅读