Tho*_*mas 2 xcode uitableview tableview swift xcode6
我正在使用 TableView 并有一个自定义的 TableViewCell,我已经向其中添加了一个子视图。
问题是我有时需要更改子视图的高度,因此,必须更新表的 contentView 以及行的高度。
自定义 TableViewCell 的子视图以黄色背景表示。
这些图像显示了我的模拟器中当前发生的情况。
负载

在导致子视图高度增加的事件之后

处理这样的事情的最佳方法是什么?
我应该使用约束吗?如果是这样,我应该使用什么样的约束?每次子视图的大小发生变化时,我是否也必须重新加载 tableview?
这是我目前用于自定义 TableViewCell 的代码:
import UIKit
class CustomCell: UITableViewCell {
var newView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.newView = UIView(frame: self.frame)
self.newView.backgroundColor = .yellowColor()
self.addSubview(newView)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
self.newView.frame.size.width = self.frame.size.width // because self.frame.width is different than it was in the init method
}
func somethingHappenedThatMySubviewHasToIncreaseInHeight() {
self.newView.frame.size.height = self.frame.size.height + 40
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
最好的方法是使用自动布局和自动调整单元格大小。在故事板中为自定义单元格设置约束。
您不需要重新加载 tableView。每个单元格将根据其子视图占用的垂直空间大小自动调整其高度。
有关更多信息,请参阅Smileyborg在他对Using Auto Layout in UITableView for dynamic cell layouts & variable row heights 的回答中的详细演练。
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |