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.
>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%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%Tags und Links iphone