代码之家  ›  专栏  ›  技术社区  ›  Uzumaki Naruto

自定义UIControl(滑块)在与交互之前不遵守约束

  •  0
  • Uzumaki Naruto  · 技术社区  · 9 年前

    我跟着去了 this tutorial 构建子类化的自定义滑块 UIControl 。当控件以编程方式插入到视图中时,它非常有用,具有确切的大小、位置等。

    然而,我想使用Storyboard在视觉上对齐视图的组件,所以我添加了 @IBDesignable @IBInspectable 到自定义滑块类。这是我的问题:

    1. 在Storyboard中,我添加了自定义滑块,并为“尾随空间到超视图”和“前导空间到超查看”添加了约束。
    2. 然而,当我在我的设备上运行它时,最初它不遵守上面设置的约束, 直到我与滑块交互 (触摸按钮),约束突然被强制执行。
    3. 我试着打电话 setNeedsDisplay init (coder: NSCoder) 方法,但没有任何效果。

    有人知道为什么会发生这种情况,以及我如何解决它吗?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Mundi    9 年前

    使命感 setNeedsDisplay 在里面 init 显然为时过早。尝试 viewWillAppear 并尝试拨打 layoutSubviews 在控制器上 view .

    但当然,潜在的错误是故事板中的错误配置。(这将很难通过该平台进行调试)。