Mam UICollectionView, w którym przejąłem hitTest: withEvent: w moich komórkach UICollectionViewCell, aby umożliwić stuknięciom znajdującym się poza komórkami zarejestrowanie się jako stuknięcia w komórki.Zadzwoń do didHighlightItemAtIndexPath bez wywołania metody didSelectItemAtIndexPath dla UICollectionView
Kiedy to zrobię i stukam na zewnątrz komórek, które teraz rejestruję jako trafienia, otrzymuję wywołania do didHighlightItemAtIndexPath i didUnhighlightItemAtIndexPath, ale nie otrzymuję połączenia z didSelectItemAtIndexPath. Jeśli stuknę w komórce, otrzymam wszystkie oczekiwane wyróżnienia i wybrane wywołania przedmiotów, tak jak wcześniej.
Nie mam skonfigurowanych niestandardowych narzędzi do rozpoznawania gestów i nie zastępuję dotykówBegan ani niczego w tym stylu.
Czy ktoś wie, na jakich warunkach można uzyskać wywołanie didHighlightItemAtIndexPath bez wywołania metody didSelectItemAtIndexPath? Czy jest jakiś sposób, aby wywołać mój didSelectItemAtIndexPath? Dzięki.
EDIT
Zapomniałem wspomnieć, że moja UICollectionView jest w Today Widget, więc jest on zawarty w Centrum powiadomień widoku przewijania. Jeśli przeniesię wybrany kod do didUnhighlightItemAtIndexPath, zostanie on wywołany po dotknięciu poza komórką, ale wynikiem jest to, że nie można faktycznie przewinąć Centrum powiadomień bez wybrania jednej z komórek.
Więc może różnica między podświetlaniem i zaznaczaniem, które tu widzę, ma coś wspólnego z odpowiedzią widoku przewijania, skasującą zaznaczenie poza komórką?
Zamiast przesłonić 'hitTest: withEvent:', spróbuj przesłonić ['pointInside: withEvent:'] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html# // apple_ref/occ/instm/UIView/pointInside: withEvent :). Czy to działa lepiej? Domyślna implementacja 'hitTest: withEvent:' używa 'pointInside: withEvent:', ale być może 'UICollectionView' również używa' pointInside: withEvent: 'bezpośrednio. –
Właściwie to przesłoniłem punktualnie: zEvent: również do wdrożenia tego. Jest tylko raz wywoływana z hitTest: withEvent :. –