Ausblenden einer Schaltfläche Obj-C
Ich bin auf der Suche ausblenden-Taste auf meinem i-phone app und dann durch klicken auf eine andere Schaltfläche es erscheint. Ich habe es geschafft, dass der Knopf verschwindet mit einem Klick, aber kann nicht herausfinden, das Gegenteil. Ich bin auch neu in Objective-C, wie Sie können wahrscheinlich sagen, also irgendwelche Tipps zur Verbesserung meiner code wäre hilfreich. Danke!
.h :
@property(nonatomic,retain) IBOutlet UIButton* button1 ;
-(IBAction)buttonTouch:(id)sender ;
.m :
@synthesize button1=_button1;
-(BOOL)hideOutlets {
_button1.hidden=TRUE;
}
-(void)buttonTouch:(id)sender {
_button1.hidden = !_button1.hidden;
}
Dieser code arbeitet. Beachten Sie, dass Sie können nicht berühren eine
hidden
- Taste. Wie werden Sie versuchen, es zu zeigen?
InformationsquelleAutor Andrea F | 2013-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, von vorne zu beginnen, wenn Sie ausblenden möchten, eine Schaltfläche setzen Sie seine Eigenschaft
hidden
JA,anders, wenn Sie wollen, um es wieder erscheint dann setzen Sie die Eigenschaft auf NEIN.
Beispiel:
Na ja, du hast Recht, ich bearbeitet, es war nur ein schnelles Beispiel, so, ich vergaß tatsächlich zu kümmern... es ist auch eine Sache der Entwickler das deklarieren von Variablen ist ein Ding, was nicht angegeben ist, der von einer Behörde
Absolut richtig - aber eine Programmier-Sprache ist auch ein Mittel der Kommunikation zwischen Entwicklern, die getrennt nach Jahren und sogar Kontinenten. In diesen Fällen folgende Konventionen hilft, vor allem, wenn es nicht sonst zu Problemen in den code.
sicher, das ist, warum ich es hier bearbeitet, aber das, was Sie tun, zu Hause in Ihrem Programm mit Ihren Variablen ist etwas, was kein anderer Entwickler kümmert so... Sie hatten Recht in Ihrem ersten Beitrag - das ist, warum es hier bearbeitet, weil es eine Askingsite für die Devs... nichts mehr zu reden, richtig??
InformationsquelleAutor Maurice
Dein code ist grundsätzlich richtig
Dieser code verstecken Sie Ihre Schaltfläche, wenn Sie gezeigt und zeigen es, wenn Sie verborgen ist. Dies sollte korrekt sein.
Du sagst
Sind Sie sicher, dass beide Tasten haben einen touch-up-inside-event richtig angeschlossen zu dieser Aktion? Ich denke mal dein problem wird sein, dass die
buttonTouch:
wird nicht aufgerufen, wenn Sie berühren Sie die andere Taste.Down-voting, weil
buttonTouch:(id)sender
sollte ein IBOutlet, die gleichen wie in der Erklärung.InformationsquelleAutor Sulthan
Darüber hinaus seine seltsame Einstellung eine Schaltfläche versteckt mit einem
BOOL
. Wenn Sie möchten, haben Sie versteckt, auf laden gehen setzen_button1.hidden = YES;
wenn Sie möchten, es zu verbergen es nur, wenn es sichtbar ist, verwenden SieYES
einen schrecklichen code und es manchmal nicht tun, was Sie erwarten, verwenden Sieif (_button1.hidden)
statt.Es funktioniert, ive hatte nie irgendwelche Probleme mit ihm.
Sie haben wahrscheinlich noch nie gearbeitet, mit einem anderen code, oder mit C oder obj-C++.
BOOL valid = 20; if (valid) { do something } else if (valid == YES) {}
. Aber der Vergleich einesBOOL
mitYES
oderNO
ist unnötig und macht das Lesen schwieriger. Vergleichen Sie ", wenn Sie verborgen ist" und "wenn ausgeblendet wird, ja"Wahrscheinlich, aber für die Hilfe ein Neuling verstehen von code würde ich annehmen =JA ist einfacher zu begreifen.
Es ist auch die .isHidden-Eigenschaft zugegriffen werden kann, das macht den code besser lesbar und funktioniert auf die gleiche Weise.
InformationsquelleAutor Oscar Apeland
Werde ich versuchen, die Frage richtig zu beantworten so wie ich es verstehe.
2 buttons, button1 und button2. Drücken von button1 ausgeblendet wird und zeigt, button2. Drücken von button2 versteckt sich und zeigt button1 wieder.
Dies sollte Ihnen ermöglichen, flip hin und her zwischen den Tasten Sie ein - /ausblenden gegenüber von einander.
InformationsquelleAutor Bill Burgess
Zwei offensichtliche Probleme mit dem code vorgestellt.
1) Kakao verwendet YES und NO für Boolesche Werte TRUE und FALSE.
2) Sie haben erklärt, eine Immobilie, so sollten Sie es verwenden anstelle des synthetisierten Instanzvariablen.
3) Du bist Tastendruck-Methode zurückgeben soll, IBAction in der Umsetzung als auch die Schnittstelle.
Weiß nicht, ob das wird dein problem lösen, aber es ist der erste Schritt zu reparieren, Ihren code.
nichts davon erklärt oder fix OP ' s Probleme, -1.
-1 Erbsenzählerei Dinge, die sind vollkommen gültig. Nicht die Frage beantworten.
Für jeden, der denkt, das war nicht die Antwort Hinweis Frage sagt: "ich bin auch neu in Objective-C, wie Sie können wahrscheinlich sagen, also irgendwelche Tipps zur Verbesserung meiner code wäre hilfreich." Plus-Punkte 1 & 3 habe ich darauf hingewiesen, wie falsch die nicht gültig sind.
wie ich schon sagte: würde hatten machen große Kommentare.
InformationsquelleAutor Steve Waddicor