【发布时间】:2016-07-16 15:55:33
【问题描述】:
我想在UISlider 的拇指上加上一个UILabel。
我的代码基于此:Another SO question
问题在于,使用该代码,在您更改值之前,拇指上没有文字。所以我做了一些修改。我将标签设为全局变量,并在viewDidLoad() 中配置它。然后我只是在滑块更改值时更改文本。
实际问题是这样的(viewDidLoad() 中的代码):
let thumbView = mySlider.subviews.last
label.frame = (thumbView?.bounds)!
mySlider 的subviews 数组为空。因此它会导致崩溃,因为我打开一个 nil 值。
我不明白为什么会发生这种情况,因为视图已完全初始化。
为什么mySlider.subviews 是空的?我错过了什么?有谁知道我该如何解决这个问题?有没有其他方法可以将标签放在拇指中间?
【问题讨论】:
-
您的视图已完全初始化,但滑块的子视图不一定。 thumbView 可能是延迟实例化的,所以它还没有在
viewDidLoad中创建,因为它还没有被调用。您应该使用@Zac Kwan 的建议来避免直接操作滑块的视图层次结构。 -
@beyowulf 有没有办法强制初始化?