ios - 表格 View 中隐藏的自定义范围 slider

标签 ios swift xcode uitableview storyboard

我使用本教程在 iOS 项目中创建了自定义范围 slider :https://www.raywenderlich.com/7595-how-to-make-a-custom-control-tutorial-a-reusable-slider

使用 Xcode 10.1 和 Swift 4.2.1。

唯一的区别是,我删除了 viewDidLayoutSubviews()部分原因是我已经在 Storyboard 中完成了。在这里,我在 Storyboard中放置了一个 UIView,设置了它的约束,将它的类设置为 RangeSlider并创建了一个 @IBOutlet weak var rangeSlider: RangeSlider!在 View Controller 中。

我使用的是静态表格 View ,但单元格高度是动态的:

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 的一半。无论我调整字体大小、旋转屏幕等都没有关系。它总是被覆盖。

enter image description here

有人可以帮忙吗?我错过了什么吗?

最佳答案

要使自动尺寸起作用,您必须有一个从 contentView 顶部到底部的完整约束链,并且该链中的每个项目都需要有一个明确的高度或一个 intrinsicContentSize。

从教程中我可以看出他们没有定义 intrinsicContentSize对于自定义 slider 。 UIKit 提供具有 intrinsicContentSize 的控件如果您不以其他方式约束它们,则宽度和高度约束等于它们的 intrinsicContentSize。因此 1) 实现 intrinsicContentSize 或 2) 手动添加固定高度约束 IN ADDTION TO tableViewCell 的内容 View 的顶部和底部约束。

关于ios - 表格 View 中隐藏的自定义范围 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127455/

相关文章:

objective-c - Xcode中有逐行调试方法吗?

swift - 为 shell 命令获取实用程序的完整路径,如 7zip 等

objective-c - 在 iOS 的 Core Graphics 中处理非常大的图像

ios - 如何在 iOS 13 中的 UINavigationItem 中将 UIBarButtonItem 向右移动到 largeTitle 旁边

ios - 管理 wifi 可达性变化的正确方法?

swift - 用约束扩展字典

iPhone 使用 MFMailComposer 从应用程序发送电子邮件?

ios - UITableView 单元的单元测试。访问单元的 Nib

swift - Segue 和 Button 以编程方式 swift

ios - 如何在iOS中实现随机决策森林分类