Ich mache eine benutzerdefinierte Navigationsleiste, indem ich UIView
und UIButtons
anstelle von UINavigationBar
verwende.
Aber mein UIButtons
in der Navigationsleiste reagiert nicht empfindlich.
Ich muss fast in der Mitte von UIButton
tippen, um zu tippen.
Es reagiert nicht, wenn ich die Kante von UIButton
antippen.
Aber Schaltflächen auf normal UINavigationBar
können durch Antippen der Schaltfläche angetippt werden.
Auch wenn Sie auf den Knopf tippen, kann er angetippt werden.
Der Auslöser oder die Optionstaste in der Kamera-App kann auch durch Tippen auf die Kante oder außerhalb der Tasten angetippt werden.
Wie kann ich diese einfach zu tappenden Schaltflächen in meiner App implementieren?
Verwenden Sie ein Bild und erstellen Sie eine benutzerdefinierte Schaltfläche. Stellen Sie die Schaltfläche so ein, dass das Bild nicht auf die Größe der Schaltflächenansicht skaliert, sondern stattdessen nur zentriert wird. Erweitern Sie die Größe der Schaltfläche, sodass sie größer als das Bild auf jeder Seite ist. Apple macht das auch mit Dingen wie Tab-Buttons.
UIButton
hat eine imageEdgeInsets
property speziell für diesen Zweck. Erstellen Sie einfach einen UIButton-Rahmen, der so groß ist, wie Sie für den berührbaren Bereich benötigen, und skalieren Sie dann das Bild entsprechend mit imageEdgeInsets
.
Haftungsausschluss: Dieser Code wurde nicht getestet, aber er gibt Ihnen eine Vorstellung davon, wie es gemacht werden könnte.
Sie machen eine Schaltfläche (in diesem Fall 40px x 40px) und fügen dann ein Hintergrundbild hinzu, das kleiner ist. Dadurch entsteht der Eindruck, dass das Bild sehr "anklickbar" ist.
%Vor%