太いトラックを持つ UISlider を作成しようとしています。これを試してみましたが、ほとんど機能します。ただし、UISlider が最初に表示されるときは、トラック バーは正常です。タッチ イベントが発生した場合にのみ、太くなります。
推奨されるように、UISlider のサブクラスに追加したコードを次に示します。
- (CGRect)trackRectForBounds:(CGRect)bounds
{
return bounds;
}
これがどのように機能するのか理解できないので、なぜ完全に機能しないのかわかりません。ここに私の質問があります:
- これはどのように作動しますか?
- トラックの厚みを制御するにはどうすればよいですか?
- UISlider が最初に描画されたときにトラックに影響を与えるにはどうすればよいですか?
もちろん、3 番目の質問が最も重要ですが、他の質問も理解に役立ちます。
考慮すべきもう 1 つの点: 最初に表示されるときは、親指を非表示にします。
[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];
ユーザーがスライダーに触れると、次のように親指を表示します。
[slider setThumbImage:nil forState:UIControlStateNormal];
これについて言及するのは、それが trackRectForBounds マジックを何らかの形で妨害しているのではないかと思うからです。
ありがとう!