Ich möchte eine Schaltfläche ( UIButton
) unter iOS deaktivieren, nachdem darauf geklickt wurde. Ich bin neu in der Entwicklung für iOS, aber ich denke, der entsprechende Code für Ziel - C lautet:
button.enabled = NO;
Aber ich konnte das nicht schnell machen.
Wenn Sie möchten, dass die Schaltfläche ohne das "gedrückte" Erscheinungsbild statisch bleibt:
Merken:
1) Dein
IBOutlet
ist ->@IBOutlet weak var editButton: UIButton!
2) Der obige Code geht hinein
viewWillAppear
quelle
Ich mache das so:
Die IBAction ist mit Ihrer Schaltfläche im Storyboard verbunden.
Wenn Sie Ihre Schaltfläche als Outlet eingerichtet haben:
Anschließend können Sie mithilfe von auf die aktivierten Eigenschaften zugreifen. Notation auf dem Schaltflächennamen:
quelle
Deaktivieren Sie eine Schaltfläche in Swift 3:
quelle
Für diejenigen, die gegoogelt haben, "eine Schaltfläche deaktivieren", aber möglicherweise differenziertere Anwendungsfälle haben:
Mit visuellem Effekt deaktivieren: Wie bereits erwähnt, wird dadurch verhindert, dass die Taste gedrückt wird, und das System lässt sie automatisch deaktiviert aussehen:
Deaktivieren ohne visuellen Effekt: Verwenden Sie eine Schaltfläche in einem Fall, in dem sie normal aussehen sollte, sich aber nicht wie eine Schaltfläche verhält, indem Sie auf Berührungen reagieren? Versuche dies!
Ausblenden ohne Deaktivieren: Bei diesem Ansatz wird die Schaltfläche ausgeblendet, ohne sie zu deaktivieren (unsichtbar, kann aber dennoch getippt werden):
Entfernen: Dadurch wird die Ansicht vollständig entfernt:
Tippen Sie auf etwas hinter einer Schaltfläche: Haben Sie zwei Schaltflächen gestapelt und möchten Sie, dass die obere Schaltfläche vorübergehend so wirkt, als wäre sie nicht vorhanden? Wenn Sie den oberen Knopf nicht mehr benötigen, entfernen Sie ihn. Wenn Sie es erneut benötigen, versuchen Sie, seine Höhe oder Breite auf 0 zu reduzieren!
quelle
Sie können eine Schaltfläche mit
isEnabled
oderisUserInteractionEnabled
Eigenschaft aktivieren / deaktivieren .Der Unterschied zwischen zwei ist:
isEnabled
ist eine Eigenschaft von UIControl (Superklasse von UIButton) und hat visuelle Effekte (dh abgeblendet) von Aktivieren / DeaktivierenisUserInteractionEnabled
ist eine Eigenschaft von UIView (Superklasse von UIControl) und hat zwar keinen visuellen Effekt, erreicht aber den ZweckVerwendung :
quelle
Value of type '(AnyObject) -> ()' has no member 'isEnabled'
(_ sender: )
zuUIButton
. Der Fehler lautet:Value of type '(UIButton) -> ()' has no member 'isEnabled'
Sagen wir mal in Swift 4 Sie haben einen Knopf für eine Segue als aufgebaut
IBAction
wie dieses@IBAction func nextLevel(_ sender: UIButton) {}
und Sie haben andere Aktionen in Ihrer Anwendung auftreten (dh eine Schaltuhr, gameplay, etc.). Anstatt die Segue-Schaltfläche zu deaktivieren, möchten Sie Ihrem Benutzer möglicherweise die Option geben, diesen Segue zu verwenden, während die anderen Aktionen noch ausgeführt werden, ohne die App zu beschädigen . Hier ist wie:Bitte beachten Sie, dass Sie wahrscheinlich andere Bedingungen haben
if appMode == 0
und / oderif appMode == 1
diese weiterhin auftreten und NICHT mit dermySegue
Schaltfläche in Konflikt stehen . So vermeiden Sie einen Absturz .quelle
Die Schaltfläche kann in Swift 4 durch den Code deaktiviert werden
quelle
Value of type '(AnyObject) -> ()' has no member 'isEnabled'
yourButton(sender: UIButton)
. Ihr aktualisierter Code wird wahrscheinlich den folgenden Fehler verursachen:Value of type '(UIButton) -> ()' has no member 'isEnabled'