iOS 15 - UITableViewCell 附件视图框架问题
Posted
技术标签:
【中文标题】iOS 15 - UITableViewCell 附件视图框架问题【英文标题】:iOS 15 - UITableViewCell accessoryView Frame issue 【发布时间】:2021-10-11 09:17:11 【问题描述】:我有一个自定义 UIView,其中包含 UILabel 为 cell.accessoryView = containerView
。它在 ios 14 之前运行良好,但从 iOS 15 开始,containerView
正在更改 tableView reload
上的框架。它在第一次加载时正确显示,但重新加载会导致 accessoryView
更改其框架。我的代码是
let notificationLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
containerView.clipsToBounds = true
containerView.backgroundColor = .clear
containerView.addSubview(notificationLabel!)
cell.accessoryView = containerView
我正在根据 cellForRowAtIndexPath
中的 UILabel 中的文本更改容器的框架。
containerView
的框架代码似乎搞砸了。但这在 iOS 14 中运行良好。
我猜有一些变化,accessoryView
位置在 iOS 15 中是允许更改的。
有什么建议可以让它在 iOS 15 中不给出精确的 x 轴或 y 轴的情况下工作吗?
【问题讨论】:
【参考方案1】:您看到的可能是添加到节标题的额外“默认”填充。
在你的 Viewdidload 中添加
if (@available(iOS 15.0, *))
[self.tableViewName setSectionHeaderTopPadding:0.0f];
【讨论】:
一点也不。我已经做好了这项检查。 这对我也不起作用。【参考方案2】:我也找不到解决方案。所以我放弃了 iOS 15 的 cell.accessoryView。
相反,我的 cellForRowAtIndexPath 处理程序调用:
[cell.contentView removeAllSubviews]
[cell.contentView addSubView:myCustomView]
【讨论】:
我仍在使用 cell.accessoryView 但我正在正确设置它的框架(原点 + 大小),这对于 iOS 15 及之前的版本非常有用。以上是关于iOS 15 - UITableViewCell 附件视图框架问题的主要内容,如果未能解决你的问题,请参考以下文章
iOS 13 UITableViewCell |子视图被剪掉