Ich suche nach einer Möglichkeit, um Texte auf Schaltflächen / Textfeldern usw. automatisch zu lokalisieren und für diese Methode muss ich alle (zum Beispiel) UIButtons auf einer UIView finden.
Ich habe die folgenden zwei Methoden ausprobiert, aber beide funktionieren nicht so, wie ich möchte, dass sie funktionieren:
%Vor%Das Problem mit diesem Code ist, dass ein RoundedRectButton nicht mit der UIButton-Klasse übereinstimmt, obwohl es sich wirklich nur um eine UIButton handelt.
Ich habe auch folgendes versucht:
%Vor%Aber die dumme Sache ist, ist, dass Kakao-Touch tatsächlich nur alle Unteransichten in dieser For-Schleife auflistet (auch die UITextFields usw.).
Gibt es eine Möglichkeit, tatsächlich alle UIButtons aus einer Ansicht zu bekommen? Oder muss ich wirklich Kontrollen finden, indem ich auf ihre Selektoren schaue.
Die erste Methode ist korrekt, außer dass Sie die isMemberOfClass-Funktion in isKindOfClass ändern müssen:
isKindOfClass : Gibt einen booleschen Wert zurück das zeigt an, ob der Empfänger ist eine Instanz der angegebenen Klasse oder ein Instanz einer Klasse, die erbt aus dieser Klasse.
Warum sollte man einen solchen Code schreiben, wenn man die Awesomeness durch Hinzufügen einer Kategoriemethode zu UIView
unter Verwendung von Blöcken aufrufen kann? Sehen Sie sich den Code ganz unten an. Mit dieser rekursiven Methode mit Blöcken können Sie beispielsweise alle UITextFields in der Ansicht eines View-Controllers deaktivieren:
Oder blenden Sie alle UITextFields in der Ansicht eines View-Controllers aus:
%Vor% Blöcke sind ziemlich erstaunlich, da Sie sogar andere Methoden innerhalb eines Blocks übergeben können. Zum Beispiel übergibt der folgende Code jedes gefundene UITextField
an meine inserAdornmentImage:forTextView
-Methode, die jeder Textansicht ein benutzerdefiniertes Hintergrundbild hinzufügt:
Blöcke machen die Methode unglaublich flexibel, so dass Sie nicht jedes Mal eine spezielle Methode schreiben müssen, wenn Sie mit den gefundenen Steuerelementen etwas Neues machen wollen. Hier ist die magische Soße:
%Vor%Tags und Links iphone cocoa-touch