Table 通过代码更改 table 字体大小时,查看自动尺寸不适合
Table view automatic dimension not fit when change table font size by code
当使用 table 查看 xib 单元格时,我有标签,我将约束顶部、右侧、左侧、底部设置为零行的内容视图,并且 table 视图自动尺寸在这种情况下工作正常。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeue() as NotificationCell
return cell
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 1000
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
在
中以编程方式更改标签字体大小时
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
label.font = UIFont(name: "fontName", size: 20)
}
此处单元格高度的问题是旧字体标签大小取自情节提要,高度仅在滚动和 table 视图重新加载后正确
那是因为 awakeFromNib() 是在单元格大小确定后调用的。我建议您在调用 awakeFromNib() 之前设置字体大小。一个建议是:
@IBOutlet var label: UILabel! {
didSet{
label.font = UIFont(name: "fontName", size: 20)
}
}
通过这种方式,您可以在超级视图调用布局子视图之前设置字体大小。
当使用 table 查看 xib 单元格时,我有标签,我将约束顶部、右侧、左侧、底部设置为零行的内容视图,并且 table 视图自动尺寸在这种情况下工作正常。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeue() as NotificationCell
return cell
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 1000
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
在
中以编程方式更改标签字体大小时override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
label.font = UIFont(name: "fontName", size: 20)
}
此处单元格高度的问题是旧字体标签大小取自情节提要,高度仅在滚动和 table 视图重新加载后正确
那是因为 awakeFromNib() 是在单元格大小确定后调用的。我建议您在调用 awakeFromNib() 之前设置字体大小。一个建议是:
@IBOutlet var label: UILabel! {
didSet{
label.font = UIFont(name: "fontName", size: 20)
}
}
通过这种方式,您可以在超级视图调用布局子视图之前设置字体大小。