Personnaliser UIPickerView de la Peau avec des images
Je développe une application iPhone. Où, je veux avoir UIPickerView
comme dans l'image. Est-il possible de changer l'apparence de UIPickerView
comme ça?! Merci de me guider pour ce faire!! Je suis entrain de créer sans XIB.
Ou est-il un moyen de faire UIPickerView
peau transparente?
Merci d'avance!! 🙂
OriginalL'auteur Nina | 2012-07-12
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas c'est une manière correcte ou pas, mais vous pouvez configurer votre
UIPickerView
image de fond ... je l'ai fait une fois.Voir ceci :-
Et maintenant, ajoutez un
UILabel
juste sur votreUIPickerView
'sselectionIndicator
, et l'utilisationlabel
comme unselectionIndicator
.vous pouvez gérer à votre façon.
Merci!
merci 🙂
Hmm... Semble que ma pickerView a 5, les sous-composants. Résiliation d'application en raison de uncaught exception 'NSRangeException', la raison: '*** -[__NSArrayM objectAtIndex:]: index 5-delà des limites [0 .. 4]'
Hmmmmmmmmmm .... 🙂
La raison pour laquelle certains cueilleurs de 5 sous-vues et d'autres montrent 9 est l'Indicateur de Sélection. Si cela a été désactivé, le sélecteur de seulement 5 sous-vues. Si elle est activée (par défaut), il aura 9.
OriginalL'auteur TheTiger
La UIPickerView est rien de plus qu'une UIView avec un ou plusieurs UITableViews et d'arrière-plan et le sélecteur de vues.
La clandestinité et de l'ajout de points de vue à la UIPicker point de vue pourrait briser votre code dans le futur, quand Apple décide de mettre en œuvre une autre manière.
Il pourrait être une meilleure idée pour mettre en œuvre votre contrôle avec UITableView(s) et votre propre arrière-plan personnalisé et sélecteur de vues.
Quelques conseils pour mettre en œuvre la UIPickerView comportement sur la UITableView(s):
Utiliser le ContentInset assurez-vous que la première/dernière ligne est indiqué dans le
milieu quand défile vers le haut/bas.
Sur le UITableViewSource mettre en œuvre tableView:didSelectRowAtIndexPath: et appel scrollToRowAtIndexPath sur la UITableView pour montrer la ligne sélectionnée dans le milieu.
Sur le UITableViewSource mettre en œuvre scrollViewDidEndDecelerating et scrollViewDidEndDragging (où willDecelerate est faux). Détecter la ligne la plus proche du milieu, jeu de ligne à une sélection et de défilement de la ligne au milieu avec selectRowAtIndexPath sur la UITableView (ou scrollToRowAtIndexPath lorsque la ligne a été déjà sélectionné).
Dans selectRowAtIndexPath et scrollToRowAtIndexPath ensemble atScrollPosition à HAUT. C'est un peu déroutant, car la ligne est indiqué dans le milieu, mais la ContentInset poussé du haut vers le milieu de l'affichage.
Vous pouvez détecter la ligne la plus proche du milieu sur la UITableView avec les cadres de la visibleCells et la contentOffset. Le NSIndexPath de la ligne peut être trouvé en appliquant le même indice de indexPathsForVisibleRows.
OriginalL'auteur Marcel W
Malheureusement UIPickerView n'est pas très personnalisable, de sorte que vous pourriez finir en utilisant des en-têtes de modifier l'apparence (ce qui n'est pas recommandé) ou en utilisant une bibliothèque tierce qui simule le comportement de UIPickerView mais permet la personnalisation.
OriginalL'auteur Filipe Alvarenga
Ont un coup d'oeil à ces. Pourrait ne pas être ce exactement ce que vous voulez, mais peut aussi aider 🙂
stackoverflow.com/questions/5744996/...
OriginalL'auteur Vaibhav Tekam