affichage bouton terminé sur UIPickerview
J'ai écrit le code suivant dans la viewDidLoad
méthode:
categoryPickerView=[[UIPickerView alloc]init];
categoryPickerView.alpha = 0;
[self.view addSubview:categoryPickerView];
categoryPickerView.delegate=self;
categoryPickerView.tag=1;
et a appelé cette méthode pour masquer la vue du sélecteur de
- (IBAction)hidePickerView:(id)sender {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.6];
CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, 200);
categoryPickerView.transform = transfrom;
categoryPickerView.alpha = categoryPickerView.alpha * (-1) + 1;
[UIView commitAnimations];
}
Mon problème est que je veux afficher un bouton "Terminé" sur un sélecteur de vue et le sélecteur de vue doit cacher sur le bouton cliquez sur.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ce code,
et bouton de réglage de la méthode d'action pour
changeDateFromLabel:
Vous pouvez créer une vue et d'ajouter une barre d'outils avec le bouton "Terminé" et UIPickerView comme des sous-vues
Vous devez utiliser le UIToolbar que l'accessoire de la vue:
Essayez avec cette:
Copier-pasteable solution!
Cela fonctionne sous iOS 10 (et probablement d'autres versions aussi) j'ai écrit ce code sur 9/4/2017.
J'avais besoin de combiner d'autres réponses pour obtenir ce que je voulais, qui a été un
Cancel
bouton,Done
bouton, et un sélecteur de vue sur afficher/masquer le robinet d'un bouton. Ignorer le fait que ma capture d'écran n'a qu'un seul élément dans le sélecteur.. je n'ai qu'un seul élément dans mon tableau. J'ai testé plusieurs articles, il fonctionne très bien.Avertissement! J'ai testé et utilisé ce code. J'ai généralisé le nom dans mon exemple, donc je m'excuse à l'avance si j'ai raté un et ils ont des noms de propriété ne sont pas alignés.
Afin d'avoir une pickerView qui apparaît sur le robinet d'un bouton, vous devez créer un dummyTextField (de type
UITextField
n'importe où dans votre vue-contrôleur. C'est parce queUIPickerView
's sont conçus pour fonctionner avec UITextFields. Pour imiter l'affichage et le masquage du sélecteur, votre bouton robinets besoin d'appeler le dummyTextField debecomeFirstResponder
etresignFirstResponder
méthodes. (exemples ci-dessous)La première étape
Créer une source de données personnalisée de classe. MyObj est la classe, vous voulez avoir les éléments apparaissent dans le sélecteur.
Dans .h:
Dans .m:
Étape deux Dans votre vue-contrôleur, importer des sources de données personnalisées, délégué, et de définir les propriétés: (Vous doit inclure le champ de texte délégué!)
Étape trois
Dans votre
viewDidLoad
, appel[self setupPicker];
(vous allez créer cette méthode suivante)Étape quatre
Créer
setupPicker
Étape cinq
Créer
configurePickerSubviews
Étape six
Configurer le
PickerDataSource
de sorte qu'il est de récupérer les données que vous voulez afficher dans votre tableau source.Étape 7
Cliquez sur
Run
!La
UIToolbar
avec le bouton "terminer" doit être ajouté à lainputAccessoryView
de la vue qui devient le premier répondeur. Comme leUIView
classe hérite deUIResponder
, à tout point de vue peut potentiellement contenir uninputView
etinputAccessoryView
. Ainsi, au lieu de l'exécution manuelle de la les animations de la programmation, vous pouvez utiliser la valeur par défaut des comportements de l'animation qui vient avec le UIResponder du clavier afficher/masquer de l'animation.La sous-classe des
UIView
et remplacer leinputView
etinputAccessoryView
propriétés et de les rendrereadwrite
. Dans cet exemple, je vais la sous-classe desUITableViewCell
.Remplacer
canBecomeFirstResponder
dans votre sous-classe de mise en œuvre.Dans votre vue-contrôleur, de créer et d'attribuer le sélecteur de vue et de saisie de l'accessoire de la barre d'outils
Ne pas oublier de donner de premiers répondants à l'affichage en cas de besoin (p. ex. à l'intérieur -
tableView:didSelectRowAtIndexPath:
)Espère que cette aide.
Référence: http://blog.swierczynski.net/2010/12/how-to-create-uipickerview-with-toolbar-above-it-in-ios/
De l'essayer.
http://technopote.com/how-to-make-multiple-uipickerview-in-a-single-view/