Ich versuche einen UISlider zu erstellen, der eine fette Spur hat. Ich habe versucht this, und es funktioniert fast. Wenn der UISlider jedoch zuerst angezeigt wird, ist die Trackleiste normal. Nur wenn es ein Berührungsereignis bekommt, wird es dicker.Wie macht man UISlider dicker, wenn es zum ersten Mal angezeigt wird?
Hier ist der Code, den ich in meine Unterklasse von UISlider hinzugefügt, wie empfohlen:
- (CGRect)trackRectForBounds:(CGRect)bounds
{
return bounds;
}
Ich verstehe nicht, wie das funktioniert, so kann ich nicht herausfinden, warum es nicht perfekt funktioniert. Hier sind meine Fragen:
- Wie funktioniert das?
- Wie kann ich steuern, wie dick die Spur ist?
- Wie kann ich die Spur beeinflussen, wenn der UISlider zuerst gezeichnet wird?
Natürlich ist die dritte Frage die wichtigste, obwohl die anderen mir in meinem Verständnis helfen werden.
Eine andere Sache zu beachten: wenn es zum ersten Mal angezeigt wird, blende ich den Daumen:
[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];
Wenn der Benutzer den Schieber berührt, ich den Daumen so anzuzeigen:
[slider setThumbImage:nil forState:UIControlStateNormal];
I Erwähnen Sie dies, weil ich mich frage, ob das irgendwie die trackRectForBounds-Magie stört.
Danke!
Schön - gute Antworten. Ich weiß nicht, wie Sie von der "Standard-Implementierung" in Frage 1 wussten, aber das erklärt alles - danke! – Bob
Typische Stapelüberlaufreaktion. – benjaminhallock
@benjaminhallock Was ist los mit meiner Antwort? –