自定义 UIControl(滑块)在与交互之前不遵守约束
Custom UIControl (slider) does not abide by constraints until interacted with
我按照 this tutorial 构建了一个子class 是 UIControl
的自定义滑块。当控件以精确的大小、位置等以编程方式插入视图时效果很好
但是,我想使用 Storyboard 在视觉上对齐视图的组件,因此我将 @IBDesignable
和 @IBInspectable
添加到自定义滑块 class。这是我的问题:
- 在 Storyboard 中,我添加了自定义滑块并为 "Trailing Space to superview" 和 "Leading Space to superview" 添加了约束。
- 但是,当我 运行 在我的设备上使用它时,最初它不遵守上面设置的限制,直到我与滑块互动(触摸按钮) 突然强制执行约束。
- 我试图在
init (coder: NSCoder)
方法中调用 setNeedsDisplay
,但没有任何效果。
有人知道为什么会这样吗?我该如何解决?
在 init
中调用 setNeedsDisplay
显然为时过早。尝试 viewWillAppear
并尝试在控制器的 view
上调用 layoutSubviews
。
当然,潜在的错误是情节提要中的错误配置。 (这将很难通过这个平台进行调试)。
我按照 this tutorial 构建了一个子class 是 UIControl
的自定义滑块。当控件以精确的大小、位置等以编程方式插入视图时效果很好
但是,我想使用 Storyboard 在视觉上对齐视图的组件,因此我将 @IBDesignable
和 @IBInspectable
添加到自定义滑块 class。这是我的问题:
- 在 Storyboard 中,我添加了自定义滑块并为 "Trailing Space to superview" 和 "Leading Space to superview" 添加了约束。
- 但是,当我 运行 在我的设备上使用它时,最初它不遵守上面设置的限制,直到我与滑块互动(触摸按钮) 突然强制执行约束。
- 我试图在
init (coder: NSCoder)
方法中调用setNeedsDisplay
,但没有任何效果。
有人知道为什么会这样吗?我该如何解决?
在 init
中调用 setNeedsDisplay
显然为时过早。尝试 viewWillAppear
并尝试在控制器的 view
上调用 layoutSubviews
。
当然,潜在的错误是情节提要中的错误配置。 (这将很难通过这个平台进行调试)。