Mam UICollectionView, gdzie każdy UICollectionViewCell ma UIButton jako wyekspozycji. UButtony odpowiadają na stuknięcia bez problemu (ich cele zostają wystrzelone), ale sam przycisk nie zmienia się w wybrany stan (brak zmiany wyglądu i stylu przycisku). Mam przeczucie, że to dlatego, że UICollectionViewCell nie przekazuje poprawnie swoich zdarzeń dotykowych do przycisku, ale nie jestem pewien. Nawet jeśli tak, to jak skonfigurować ustawienia, aby stan przycisku zmieniał się prawidłowo w tym scenariuszu?Wywołanie UIButton w UICollectionViewCell nie zmienia stanu sterowania
Odpowiedz
UIScrollview
(a więc UICollectionView
też) ma właściwość o nazwie delaysContentTouches
domyślnie jest ustawiony na TAK, zmienić na NO a przycisk należy podkreślić jak to ma.
Jeśli mogę zasugerować alternatywa, UICollectionView ma niesamowite metody delegata nazwie
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { }
który mógłby obsłużyć kliknij aby tej celi ... jeśli szukasz konkretnych wydarzeń powracają jak widząc obraz zmienić na stan przycisku, możesz napisać, że w ... po naciśnięciu przycisku wykonaj jedną czynność, po zwolnieniu przycisku wykonaj inną rzecz ...
zgodnie z dokumentacją również
UIControlStateSe wybrany Wybrany stan kontroli. W przypadku wielu elementów sterujących ten stan nie ma wpływu na zachowanie ani wygląd. Ale inne podklasy (na przykład klasa UISegmentedControl) mogą mieć różny wygląd w zależności od wybranego stanu. Możesz pobrać i ustawić tę wartość za pośrednictwem wybranej właściwości.
w laymens chodzi .. na UIButton „Wybrane państwa” nic nie robi ...
jeśli przycisk jest przypuszczać, aby przyciemnić, kiedy to kliknął i nie robi tego, to może trzeba to zrobić jeśli programowo, ale nie jestem do końca pewien, co chce zrobić ...
funkcja ściemniania jest ze w zaznaczonym stanie
UIControlStateHighlighted Podkreślił stan kontroli. Element sterujący wchodzi w ten stan, gdy dotknięcie wchodzi i kończy się podczas śledzenia i gdy występuje zdarzenie dotyku. Możesz pobrać i ustawić tę wartość za pomocą podświetlonej właściwości.
w laymens warunkach, dotknąć przycisk to podświetlone
aby sprawdzić, czy przycisk zmienia stany właściwie można zrobić coś takiego
[button addTarget:self action:@selector(functionToCall:) forControlEvents:UIControlEventAllTouchEvents];
NSLog(@"Selected: %i", button.selected);
NSLog(@"Highlighted: %i", button.highlighted);
NSLog(@"Normal State or not: %i", button.state);
„functionToCall zostanie wywołana gdy każdy rodzaj dotknięcie przycisku dzieje się nawet z przyciskiem, aw tej funkcji można mieć te 3 dzienniki NSLog, które będą drukować na konsoli różne wartości UIControlState, to pokaże, że przycisk działa poprawnie i pokazuje, że może to być błąd UIViewCollection, jeśli jest to UICollectionView ... wtedy będziesz musiał programowo przyciemnić przycisk: 3
mam nadzieję, że to pomoże!
Próbowałem ustawić programowo przycisk podświetlony, ale nadal nie działa. –
- 1. UICollectionViewCell to UIButton Focus in tvOS
- 2. Ręczne ustawienie stanu UIButton
- 3. Zmiana stanu opóźnionego UIButton
- 4. Rozmiar wewnętrzny nie aktualizuje się po zmianie stanu UIButton
- 5. Dlaczego UICollectionViewCell z UIButton ma obraz monochromatyczny/przyciemniony?
- 6. Próba zastąpienia "zaznaczone" w UICollectionViewCell Swift dla niestandardowego stanu wyboru
- 7. Uibutton zmienia rozmiar po zmianie czcionki?
- 8. Obserwacja wartości klucz-wartość w stanie UIButton
- 9. Podklasa UICollectionViewCell Nie wyświetlająca się
- 10. UICollectionView nie zawiera UICollectionViewCell w IB
- 11. Uibutton jako UIButton w szybkim?
- 12. Animacja UICollectionViewCell on Tap
- 13. Angular2 wywołanie funkcji, gdy wejście Zmienia
- 14. UICollectionViewCell Shake
- 15. Wywołanie stanu LSTM jako modelu funkcjonalnego?
- 16. Kolor tła UIButton dla podświetlonego/wybranego stanu wydania
- 17. iOS Zmień kolor UiButton nie działa
- 18. Wywołanie metody na stronie nadrzędnej ze sterowania użytkownika
- 19. Jak wywołać wywołanie zwrotne po aktualizacji stanu w Redux?
- 20. Przedstawianie UIPopoverController z UICollectionViewCell
- 21. UICollectionViewCell kolor cienia
- 22. centrum swift positionate UICollectionViewCell
- 23. UICollectionViewCell Auto Layout
- 24. Pasek stanu IOS7 zmienia kolor na czarny po uruchomieniu wyszukiwania
- 25. UIButton nie działa, gdy w UIScrollView
- 26. Uibutton miga po naciśnięciu
- 27. UIButton titleLabel nie wyświetla się
- 28. UICollectionViewCell Border/Shadow
- 29. UIbutton flashowanie animacji
- 30. UICollectionViewCell expand/collapse o rozmiarze wewnętrznym
Piękne! Działa doskonale.Dla ciekawskich, oto odpowiednia dokumentacja tej właściwości: 'Wartość logiczna, która określa, czy widok przewijania opóźnia obsługę gestów touch-down. Jeśli wartość tej właściwości wynosi TAK, widok przewijania opóźnia obsługę gestu touch-down aż do ustalenia, czy przewijanie jest zamierzone. Jeśli wartością jest NIE, widok przewijania natychmiast wywołuje dotknięciaShouldBegin: withEvent: inContentView :. Domyślna wartość to TAK –