私は太いトラックを持つUISliderを作ろうとしています。私はthisを試して、それはほとんど動作します。ただし、UISliderが最初に表示されるとき、トラックバーは正常です。タッチイベントが発生した場合にのみ、それはより厚くなります。ここで初めてUISliderを太くするには?
は推奨されているように、私は、UISliderの私のサブクラスに追加されたコードは次のとおりです。
- (CGRect)trackRectForBounds:(CGRect)bounds
{
return bounds;
}
私はこれがどのように動作するか理解していないので、それは完璧に動作していない理由を私は理解することはできません。ここに私の質問があります:
- これはどのように機能しますか?
- トラックの厚みを制御するにはどうすればよいですか?
- UISliderを初めて描画したときに、トラックにどのように影響を与えることができますか?
もちろん、3番目の質問が最も重要ですが、他の質問は私の理解に役立ちます。
考慮すべきもう一つの事:それが最初に表示されたとき、私は親指を隠す:ユーザーがスライダーに触れると
[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];
は、私はこのような親指を表示:
[slider setThumbImage:nil forState:UIControlStateNormal];
私はこれが何とかtrackRectForBoundsの魔法を妨害しているのではないかと思うので、これを言及してください。
ありがとうございます!
美しい - すばらしい答え。質問1の「デフォルトの実装」についてどのように知っていたのか分かりませんが、すべてが説明されています - ありがとう! – Bob
典型的なスタックオーバーフローの応答。 – benjaminhallock
@benjaminhallock私の返答に何が間違っていますか? –