Sucht alle Steuerelemente eines Typs in einer UIView

7

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.

    
Wim Haanstra 30.09.2010, 10:53
quelle

2 Antworten

9

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.

    
Vladimir 30.09.2010, 10:56
quelle
10

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:

%Vor%

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:

%Vor%

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%     
memmons 08.03.2013 16:27
quelle

Tags und Links