添加附件时自定义 UITableViewCell 大小不正确
Posted
技术标签:
【中文标题】添加附件时自定义 UITableViewCell 大小不正确【英文标题】:Custom UITableViewCell does not size properly when Accessory is added 【发布时间】:2015-01-09 04:06:29 【问题描述】:设置附件后,我无法让自定义 UITableViewCell 正确调整大小。为什么附件会在初始显示上放大单元格大小?当我使用附件集滚动时,尺寸会自行纠正 - 但是,初始视图的尺寸不正确。
我已经多次观看 WWDC14(tableview 中的新功能)视频,并且阅读了许多 *** 问题并尝试了许多解决方案。我想我已经解决了大部分问题 - 单元格确实为动态文本调整大小 - 但我对这种奇怪的初始行为感到困惑。我正在运行 XCode 6.1.1 部署到 ios 8.1。
我正在使用故事板。我有一个 UITableViewController 和自定义 UITableViewCell。我在情节提要中定义了约束,没有约束警告,并且在运行时在控制台中没有看到约束消息。
在我的 UITableViewController viewDidLoad()
tableView.estimatedRowHeight = 44
tableView.rowHeight = UITableViewAutomaticDimension
有覆盖
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("TableViewCell", forIndexPath: indexPath) as TableViewCell
cell.configure(titles[indexPath.row])
return cell
这是我的整个自定义 UITableViewCell
class TableViewCell: UITableViewCell
@IBOutlet weak var titleLabel: UILabel!
func configure(title: NSString)
titleLabel.text = title
titleLabel.font = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
override func layoutSubviews()
super.layoutSubviews()
titleLabel.preferredMaxLayoutWidth = frame.width
这是在单元格上设置无附件时的样子
这是我在单元格上设置附件披露指示器时的样子
再次,当我使用附件集滚动时,尺寸会自行纠正。我尝试在情节提要中向单元格添加垂直约束,也尝试通过以编程方式添加所有约束但没有成功。感谢您的任何想法。
【问题讨论】:
【参考方案1】:我也看到了故事板设计的自调整单元格的这个问题。尝试将 self.layoutIfNeeded()
添加到单元格类中 didMoveToSuperview
的覆盖中。我不知道这是否是一个错误,或者我们只是错过了我们应该做的事情。
【讨论】:
谢谢@rdelmar,不幸的是这对我不起作用,并且一些副作用破坏了包装。我的 Xcode 安装/模拟器可能有问题 - 我和一位同事都运行了一个教程项目,但我的实例没有在表格中填充任何数据,而他做到了。我看到非常不稳定的行为。我正在对此进行调查,如果可以的话,我会更新答案。以上是关于添加附件时自定义 UITableViewCell 大小不正确的主要内容,如果未能解决你的问题,请参考以下文章
调用 reloadData 时自定义 UITableViewCell 内存泄漏
首次加载 UITableViewController 时自定义 UITableViewCell 无法正确显示
实现 willTransitionToState: 时自定义 UITableViewCell 不显示编辑控件