Ich benutze UIBarButtonSystemItemPlay, um meine Audiodatei abzuspielen, und ich möchte den Stil dynamisch ändern, wenn ich darauf klicke. Ist das möglich? Wenn ja, dann hilf mir bitte. Dies ist mein Code, wobei _playPause IBOutlet von UIBarButtonSystemItemPlay ist. Vielen Dank im Voraus.
%Vor% UIBarButtonSystemItemPlay
oder UIBarButtonSystemItemPause
kann nicht von der style -Eigenschaft abgerufen werden. Der Stil ist vom Typ UIBarButtonItemStyle
.
Überprüfen Sie die Dokumentation hier .
> Ich schlage vor, zwei verschiedene UIBarButtonItem
zu erstellen und sie dann abwechselnd zu aktivieren oder zu deaktivieren (zum Beispiel). Es ist auch möglich, die aktuelle sichtbare Schaltfläche zu entfernen und eine neue mit einem anderen UIBarButtonSystemItem
hinzuzufügen.
Hier ist eine ziemlich vollständige Lösung für das, was ich gerade implementiert habe:
Definieren Sie zuerst vars, um beide Schaltflächen zu halten:
%Vor%(Mein Verständnis hier ist, dass die Symbolleiste ein schwacher Verweis ist, da sie über IB definiert ist und einen starken Zeiger darauf hat, aber dass die Wiedergabe / Pause-Buttons starke Zeiger sind, weil wir sie unten erstellen. Aber mein Fu ist an dieser Front ein wenig schwach, als ein ziemlich Neuling, also Korrekturen geschätzt.)
Zweitens, in IB erstellen Sie nur eine Play-Taste (keine Pause-Taste) und binden Sie sie an die oben genannten PlayButton var.
Stellen Sie drittens diese Methode ein:
%Vor%Viertens, rufen Sie setAsPlaying auf, egal wo Sie spielen oder pausieren möchten. Zum Beispiel:
%Vor%Ich glaube, wenn der Stil erst einmal festgelegt wurde (d. h. beim Erstellen von Oberflächen oder beim Erstellen der Schaltfläche im Code), kann er nicht geändert werden.
Ihre einzige andere Option besteht darin, die Schaltfläche im Code zu entfernen und an ihrer Stelle eine neue mit einem anderen Stil zu erstellen. Sie könnten diese Methode aufrufen:
%Vor% Weitere Informationen zu UIBarButtonItem
finden Sie in das .
Ja, Sie können den "Stil" nicht ändern (er wird nicht Stil genannt), sobald er eingestellt ist.
Ja, Sie können eine andere Schaltfläche erstellen, die es behebt.
Hier ist wiederverwendbarer Code, der das tut:
%Vor% Hier ist Controller normalerweise self
.
Tags und Links objective-c iphone ios