iOS 13 UITableViewCell |子视图被剪掉
Posted
技术标签:
【中文标题】iOS 13 UITableViewCell |子视图被剪掉【英文标题】:iOS 13 UITableViewCell | Child view gets clipped out 【发布时间】:2019-09-24 11:50:15 【问题描述】:所以我有一个UITableView
,其中包含一个UITableViewCell
,并且tableView.header
设置为视差标题。 UITableViewCell
具有某些 UIView
s,它们被设置为 Top 的负约束,并且在 iOS-12 上完美显示,而在 iOS-13 上观察时 @987654332显示在 Parallax Header 上的 @s 被剪裁。我已经尝试了所有可能的解决方案,但不幸的是它仍然显示相同。我的应用程序选择退出 SwiftUI 并仍在运行旧代码。我什至试图改变孩子UIView
的zIndex
但还是一样。以下是一些快照和一些代码:
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
的约束布局:
我需要在两个操作系统上保持一致。非常感谢您的帮助!
【问题讨论】:
【参考方案1】:哇哦!我终于弄明白了。因此,在默认情况下,它在 iOS-12 上工作,但在 iOS-13 和 UITableViewCell
如问题所述更改之后,它停止工作。这是我所做的:
-
首先,在Size Inspector中,
UITableViewCell
的ContentView
设置为Safe Area Layout Guide
,我将其关闭并打开Safe Area Relative Margins
,同样我为孩子做了同样的事情,如在 PriceView 中。
其次,在属性检查器中,ContentView
和 UITableViewCell
都打开了 Autoresize Subviews
属性,我只是将其关闭
瞧!有用。希望任何可能有这些UITableViewCell
问题的人,请注意现在都是相对的?
【讨论】:
【参考方案2】:实际上,对我有用的是从内容视图的属性检查器中取消选中“剪辑到边界”
【讨论】:
以上是关于iOS 13 UITableViewCell |子视图被剪掉的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8:UITableViewCell.contentView 不会调整其中的子视图大小
UITableViewCell 子视图在 iOS7 中只返回 UITableViewCellScrollView
如何在 iOS 13.3 上使用 xib 显示 UITableViewCell?
iOS UITableViewCell点击时子视图背景透明的解决方法
添加 UITextField 作为 UITableViewCell 的子视图在 IOS 6 中工作正常,但在 IOS 7 中它不起作用?