【发布时间】:2019-08-03 06:40:28
【问题描述】:
我使用本教程在 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,设置了它的约束,将它的类设置为RangeSlider,并在视图控制器中创建了一个@IBOutlet weak var rangeSlider: RangeSlider!。
我使用的是静态表格视图,但具有动态单元格高度:
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 的一半。我玩弄字体大小、旋转屏幕等都没关系。它总是被覆盖。
有人可以帮忙吗?我错过了什么吗?
【问题讨论】:
-
由于
UITableViewlCell中没有字体,它不会调整给定字体的大小。automaticDimension和.estimatedRowHeight并没有真正“强制”一个高度。此外,滑块的高度非常小,只有几个像素。它会“正确”调整大小,因为根据功能,滑块适合单元格所需的高度并不高。 -
@Craz1k0ek 我已经记录了 rangeSlider 的高度(viewDidLoad 中的打印语句)。上面写着30分。默认滑块上方一个单元格的高度为 31 磅。所以我不明白,为什么上面的单元格会自行扩展以使滑块适合,但是带有自定义滑块的另一个单元格不希望扩展其高度。
标签: ios swift xcode uitableview storyboard