Uibutton ignoruje dotyk, jeśli dotkniesz go tam, gdzie nie ma alfa obrazu. Czy mogę to zmienić, aby reagować na dotyk w całym jego zakresie?Jak mogę sprawić, aby UIButton reagował na dotyk na przezroczyste obszary obrazu PNG?
Odpowiedz
Uibutton ignoruje dotyk, jeśli dotkniesz go tam, gdzie nie ma alfa obrazu. Czy mogę to zmienić, aby reagować na dotyk w całym jego zakresie?
Jednym z prostych sposobów, które myślę, że nadal działa, jest ustawienie koloru tła do czegoś, co jest tylko głównie przejrzyste. Alfa, która jest bardzo mała, ale wciąż większa niż 0,1, powinna wyglądać przezroczysto, ale nadal reagować na dotknięcia.
W przeciwnym razie można zastąpić -hitTest:withEvent:
tak, że zwraca TAK, nawet jeśli dotknięty obszar jest przezroczysty.
I rzeczywiście to robić cały czas, gdzie umieścić obraz z przezroczystym tłem do UIImageView
a następnie umieścić UIButton
z backgroundColor
zestaw do [UIColor clearColor]
w górnej części obrazu. W ten sposób, szczególnie przy małych obrazach, mogę sprawić, że przycisk "niewidoczny" będzie większy i łatwiejszy do naciśnięcia dla użytkownika.
Czy mogę po prostu zwrócić stałą wartość TAK dla parametru hitTest? –
Prawdopodobnie chciałbyś przynajmniej sprawdzić, czy punkt znajduje się w zasięgu przycisku. – Caleb
OK zrobi - dzięki. Teraz rozwiązanie problemu przejrzystości działa dobrze. Dzięki! –