在设置附件时,我无法正确调整自定义UITableViewCell的大小。为什么附件会在初始显示屏上打破细胞大小?当我使用附件集滚动时,大小调整自身 - 但是,初始视图没有正确调整大小。
我已多次观看WWDC14(桌面视图中的新内容)视频,并且我已阅读了许多stackoverflow问题并尝试了许多解决方案。我想我已经解决了大部分问题 - 单元格会为动态文本调整大小 - 但我对这种奇怪的初始行为感到困惑。我正在运行部署到iOS 8.1的XCode 6.1.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
}
}
这是在单元格上设置Accessory None时的样子
这是我在单元格上设置附件披露指标时的样子
同样,当我使用附件设置滚动时,尺寸会自行修正。我尝试在故事板中为单元格添加垂直约束,并且通过编程方式添加所有约束但没有成功。谢谢你的任何想法。
答案 0 :(得分:0)
我也通过故事板设计的自动调整单元格看到了这个问题。尝试将self.layoutIfNeeded()
添加到您的单元格类中的didMoveToSuperview
覆盖中。我不知道这是不是一个错误,或者我们只是错过了我们应该做的事情。