table 视图中隐藏的自定义范围滑块
custom range slider hidden in table view
我使用本教程在 iOS 项目中创建了自定义范围滑块:https://www.raywenderlich.com/7595-how-to-make-a-custom-control-tutorial-a-reusable-slider
使用 Xcode 10.1 和 Swift 4.2.1.
唯一的区别是,我删除了 viewDidLayoutSubviews()
部分,因为我已经在情节提要中完成了。在这里,我在故事板中放置了一个 UIView,设置了它的约束,将其 class 设置为 RangeSlider
并在视图控制器中创建了一个 @IBOutlet weak var rangeSlider: RangeSlider!
。
我使用的是静态 table 视图,但单元格高度是动态的:
override func viewDidLoad() {
...
self.tableView.rowHeight = UITableView.automaticDimension
self.tableView.estimatedRowHeight = 80.0
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
如果我更改字体大小,单元格高度将得到调整,这正是我想要的,但不知何故,带有 rangeSlider 的单元格覆盖了 rangeSlider 的一半。不管我调整字体大小,旋转屏幕等都没有关系。它总是被覆盖。
有人可以帮忙吗?我错过了什么吗?
要使自动尺寸起作用,您必须具有从 contentView
顶部到底部的完整约束链,并且该链中的每个项目都需要具有明确的高度或 intrinsicContentSize。
据我从教程中得知,如果您不以其他方式约束它们,它们不会定义 intrinsicContentSize for the custom slider. UIKit gives controls that have an intrinsicContentSize 等于其 intrinsicContentSize 的宽度和高度约束。因此 1) 实施 intrinsicContentSize
或 2) 手动添加固定高度约束 以及 tableViewCell 内容视图的顶部和底部约束。
我使用本教程在 iOS 项目中创建了自定义范围滑块:https://www.raywenderlich.com/7595-how-to-make-a-custom-control-tutorial-a-reusable-slider
使用 Xcode 10.1 和 Swift 4.2.1.
唯一的区别是,我删除了 viewDidLayoutSubviews()
部分,因为我已经在情节提要中完成了。在这里,我在故事板中放置了一个 UIView,设置了它的约束,将其 class 设置为 RangeSlider
并在视图控制器中创建了一个 @IBOutlet weak var rangeSlider: RangeSlider!
。
我使用的是静态 table 视图,但单元格高度是动态的:
override func viewDidLoad() {
...
self.tableView.rowHeight = UITableView.automaticDimension
self.tableView.estimatedRowHeight = 80.0
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
如果我更改字体大小,单元格高度将得到调整,这正是我想要的,但不知何故,带有 rangeSlider 的单元格覆盖了 rangeSlider 的一半。不管我调整字体大小,旋转屏幕等都没有关系。它总是被覆盖。
有人可以帮忙吗?我错过了什么吗?
要使自动尺寸起作用,您必须具有从 contentView
顶部到底部的完整约束链,并且该链中的每个项目都需要具有明确的高度或 intrinsicContentSize。
据我从教程中得知,如果您不以其他方式约束它们,它们不会定义 intrinsicContentSize for the custom slider. UIKit gives controls that have an intrinsicContentSize 等于其 intrinsicContentSize 的宽度和高度约束。因此 1) 实施 intrinsicContentSize
或 2) 手动添加固定高度约束 以及 tableViewCell 内容视图的顶部和底部约束。