Cette façon de faire sera sans doute mais est sécable en cas d'apple décide de jouer avec le point de vue de la hiérarchie, veuillez voir ma solution ci-dessous en utilisant l'apparence de protocole.
L'original UISearchBar hiérarchie a changé depuis le premier post et le UITextField n'est plus une sous-vue directe. Le code ci-dessous ne fait aucune hypothèse sur la UISearchBar hiérarchie.
C'est également utile lorsque vous ne voulez pas changer la barre de recherche de la couleur du texte tout au long de l'ensemble de l'application (c'est à dire à l'aide de appearanceWhenContainedIn).
/**
* A recursive method which sets all UITextField text color within a view.
* Makes no assumptions about the original view's hierarchy.
*/+(void) setAllTextFieldsWithin:(UIView*)view toColor:(UIColor*)color
{for(UIView*subView in view.subviews){if([subView isKindOfClass:UITextField.class]){[(UITextField*)subView setTextColor:color];}else{[self setAllTextFieldsWithin:subView toColor:color];}}}
tout d'abord, vous trouverez la sous-vue dans
UISearchBar
, puis de trouver leUITextField
dans la sous-Vue puis changer la couleurEssayez ce code:-
pour Ios 5 +
OriginalL'auteur Deepesh
Comme de l'iOS 5, la bonne façon de le faire est en utilisant l'apparence de protocole.
Par exemple:
OriginalL'auteur Tom Susel
Vous pouvez définir les attributs comme, appelez cela dans votre contrôleur.
*notez que cela va changer tous les UITextFields dans votre contrôleur
OriginalL'auteur mOp
L'original
UISearchBar
hiérarchie a changé depuis le premier post et leUITextField
n'est plus une sous-vue directe. Le code ci-dessous ne fait aucune hypothèse sur laUISearchBar
hiérarchie.C'est également utile lorsque vous ne voulez pas changer la barre de recherche de la couleur du texte tout au long de l'ensemble de l'application (c'est à dire à l'aide de appearanceWhenContainedIn).
Utilisation:
OriginalL'auteur Jon Bryant