Próbuję zrobić UISlider, który ma grubą ścieżkę. Próbowałem this, a to prawie działa. Jednakże, gdy pierwszy raz wyświetli się UISlider, pasek śledzenia jest normalny. Tylko wtedy, gdy dostaje się wydarzenie dotykowe, staje się coraz grubsze.Jak sprawić, aby UISlider był grubszy po pierwszym wyświetleniu?
Oto kod dodałem do mojego podklasy UISlider, zgodnie z zaleceniami:
- (CGRect)trackRectForBounds:(CGRect)bounds
{
return bounds;
}
ja nie rozumiem, jak to działa, więc nie mogę zrozumieć, dlaczego to nie działa idealnie. Oto moje pytania:
- Jak to działa?
- Jak kontrolować grubość ścieżki?
- W jaki sposób mogę wpłynąć na ścieżkę po pierwszym losowaniu UISlider?
Oczywiście trzecie pytanie jest najważniejsze, ale inne pomogą mi w moim zrozumieniu.
Jedną rzeczą do rozważenia: gdy jest wyświetlany jako pierwszy, chowam kciuka:
[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];
Gdy użytkownik dotyka suwak, wyświetlać kciuk tak:
[slider setThumbImage:nil forState:UIControlStateNormal];
I wspomnij o tym, ponieważ zastanawiam się, czy to w jakiś sposób przeszkadza magii trackRectForBounds.
Dzięki!
Piękne - świetne odpowiedzi. Nie wiem, skąd wiedziałeś o "domyślnej implementacji" w pytaniu 1, ale to wszystko wyjaśnia - dzięki! – Bob
Typowa odpowiedź przepływu stackoverflow. – benjaminhallock
@benjaminhallock Co jest nie tak z moją odpowiedzią? –