获取tableView的高度
get height of a tableView
我在顶部的标签之间有一个 tableView(约束:对齐中心 x,对齐顶部到 20)。
底部有一个按钮(约束:对齐中心 x,将底部对齐到 50)。
并且 tableView 在这两个对象之间对齐 top/bottom 到 20。
我正在尝试读取 tableView 的高度,因为根据我使用的设备不同高度应该不同?
但是如果我在我的代码中使用下面的代码,我总是得到相同的 tableView 高度。
打印结果总是616。
我missing/not 理解正确吗?
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
print(tableView.frame.size.height)
}
试着让你的身高在
override func viewWillLayoutSubviews() {
print(tableView.frame.size.height)
}
当您的视图控制器是从情节提要中创建时,所有初始帧都等于您的情节提要中选择的帧,因此它们仅对情节提要中选择的设备是正确的
第一次访问真实帧是在第一次 layoutSubviews
之后,所以你需要这个:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
print(tableView.frame.size.height)
}
查看有关视图生命周期的更多信息here
p.s。较新的忘记在覆盖某些内容时调用 super.
方法,您可能很容易破坏某些内容。除非文档这么说或者你真的知道你在做什么
试试这个方法
override func viewWillLayoutSubviews() {
super.viewDidLayoutSubviews()
print(tableView.frame.size.height)
}
您看到打印出两个不同值的原因是因为此方法在 viewdidload 之后立即调用,并在对视图应用所有自动布局或自动调整大小计算后再次调用。这意味着每次视图大小更改和视图布局重新计算时都会调用方法 viewDidLayoutSubviews。
有关这方面的更多信息,请参阅
Apple documentation on viewdidlayoutsubviews
我在顶部的标签之间有一个 tableView(约束:对齐中心 x,对齐顶部到 20)。
底部有一个按钮(约束:对齐中心 x,将底部对齐到 50)。
并且 tableView 在这两个对象之间对齐 top/bottom 到 20。
我正在尝试读取 tableView 的高度,因为根据我使用的设备不同高度应该不同? 但是如果我在我的代码中使用下面的代码,我总是得到相同的 tableView 高度。
打印结果总是616。
我missing/not 理解正确吗?
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
print(tableView.frame.size.height)
}
试着让你的身高在
override func viewWillLayoutSubviews() {
print(tableView.frame.size.height)
}
当您的视图控制器是从情节提要中创建时,所有初始帧都等于您的情节提要中选择的帧,因此它们仅对情节提要中选择的设备是正确的
第一次访问真实帧是在第一次 layoutSubviews
之后,所以你需要这个:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
print(tableView.frame.size.height)
}
查看有关视图生命周期的更多信息here
p.s。较新的忘记在覆盖某些内容时调用 super.
方法,您可能很容易破坏某些内容。除非文档这么说或者你真的知道你在做什么
试试这个方法
override func viewWillLayoutSubviews() {
super.viewDidLayoutSubviews()
print(tableView.frame.size.height)
}
您看到打印出两个不同值的原因是因为此方法在 viewdidload 之后立即调用,并在对视图应用所有自动布局或自动调整大小计算后再次调用。这意味着每次视图大小更改和视图布局重新计算时都会调用方法 viewDidLayoutSubviews。
有关这方面的更多信息,请参阅
Apple documentation on viewdidlayoutsubviews