UILabel
をUISlider
の親指に入れたいと思います。UISlider ViewDidLoad()のサブビューがありません
私のコードは、これに基づいている:Another SO question
問題は、あなたが値を変更する前に、そのコードで、親指にはテキストがありませんということです。だから私はいくつかの変更を加えました。ラベルをグローバル変数にして、viewDidLoad()
に設定しました。次に、スライダが値を変更するときにテキストを変更するだけです。
let thumbView = mySlider.subviews.last
label.frame = (thumbView?.bounds)!
mySlider
のsubviews
配列が空である:
実際の問題は、この(viewDidLoad()
のコード)です。したがって、ゼロ値をアンラップするのでクラッシュが発生します。
ビューが完全に初期化されているため、なぜそれが起こるのかわかりません。
なぜmySlider.subviews
が空ですか?私は何が欠けていますか?誰も私はこれを修正する方法を知っていますか?親指の真ん中にラベルを置く他の方法はありますか?
あなたのビューが完全に初期化が、あなたのスライダーのサブビューは限りません。 thumbViewは遅れてインスタンス化される可能性が高いので、まだ呼び出されていないため、 'viewDidLoad'で作成されていません。スライダのビュー階層を直接操作する必要がないようにするには、@ Zac Kwanの提案を使用する必要があります。 – beyowulf
@beyowulf強制的に初期化する方法はありますか? –