Wie Schaltfläche in UIActionSheet deaktivieren?

8

Ich muss die Schaltflächen in UIActionSheet deaktivieren. Nach einigen Operationen muss ich sie wieder aktivieren. Also gibt es einen Weg, dies zu tun.

Danke

    
satish 22.07.2009, 05:57
quelle

6 Antworten

-2

Die Tasten sind Unteransichten von UIActionSheet und ihre Klasse ist UIThreePartButton

Sie können sie bekommen und alles tun, was Sie wollen:

%Vor%     
oxigen 22.07.2009, 06:17
quelle
17

Basierend auf einer Anzahl von Threads habe ich eine Antwort in einer Kategorie in UIActionSheet zusammengefasst und eine Methode setButton: toState wie folgt hinzugefügt. Hoffe es hilft:

%Vor%     
Reuven 21.02.2012 15:24
quelle
2

Etwas verbesserte Version von Reuven [leider kann ich keinen Kommentar hinzufügen, weil ich noch nicht den 'Ruf' habe ...].

%Vor%

Die vorherige Antwort war nicht wichtig, weil wir bereits nach UIButton suchen (was eine UIControl-Unterklasse ist, die alle setEnabled unterstützt.) Passend zu Apples NSArrays habe ich auch zu "AtIndex" und NSUInteger gewechselt, aber das ist meistens Kosmetik.

Der Gesamtansatz scheint gut zu funktionieren, aber bitte beachte, dass die Reihenfolge der Schaltflächen-Unteransichten genau der Reihenfolge der Schaltflächenindizes entspricht, wenn das Aktionsblatt erstellt wurde, was nirgendwo genau dokumentiert ist.

>     
tiritea 21.08.2014 04:36
quelle
2

Swift 3.0 Version:

%Vor%     
Hakim 04.11.2016 19:25
quelle
1

Die mitgelieferten Lösungen funktionieren nicht unter iOS 8. Falls jemand% code_% nicht dafür verwendet (was Apples empfohlene Vorgehensweise ist), habe ich @ Reuvens Antwort so modifiziert, dass sie auch für iOS 8 funktioniert:

(Die zweite Phase basiert auf dieser Antwort)

%Vor%     
Petar 17.05.2015 21:33
quelle
0

Das ist wahrscheinlich ein bisschen spät. Aber die Art, wie ich es herausgefunden habe, ist UIB-Taste (n) zu erstellen und sie hinzuzufügen zur Untersicht UIActionSheet. Stellen Sie sicher, dass diese Schaltflächen oben platziert sind und die zu ersetzenden Standard-UIActionSheet-Schaltflächen vollständig abdecken. Wenn der UIButton über die Standardschaltfläche UIActionSheet platziert wird, hat sein UIResponder Vorrang vor dem UIActionSheet-Button UIResponder. Auf diese Weise können Sie diese Schaltflächen deaktivieren und aktivieren, unabhängig davon, wie Sie sie in Ihrer UIViewController-Logik verwenden möchten. Dies kann eine Alternative zum Zugriff auf private Methoden für das SDK sein (wie oben - UIThreePartButton) und Apple lehnt Ihre App möglicherweise ab. Ich glaube, das entspricht den Apple Richtlinien.

d. h.

%Vor%     
mrapplehead 18.05.2011 20:20
quelle

Tags und Links