J'ai ce code pour cacher UIPickerView par défaut :
- (void)viewDidLoad
{
[super viewDidLoad];
[_memberList setAlpha:0];
}
et ce code pour montrer UIPickerView quand un bouton est tapé :
- (IBAction)buttonChooseMember {
[UIView animateWithDuration:0.6 delay:0. options:UIViewAnimationOptionCurveEaseInOut animations:^{
[_memberList setAlpha:1];
} completion:nil];
}
et la dernière chose est la suivante, pour cacher le clavier lorsque l'utilisateur tape n'importe où :
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UIView * txt in self.view.subviews){
if ([txt isKindOfClass:[UITextField class]]) {
[txt resignFirstResponder];
}else if ([txt isKindOfClass:[UIPickerView class]]) {
[UIView animateWithDuration:0.6 delay:0. options:UIViewAnimationOptionCurveEaseInOut animations:^{
[_registerMLMList setAlpha:0];
} completion:nil];
}
}
}
mais tout cela ne me donne qu'une animation "d'apparence", parce que la valeur Alpha ne change que de 0 à 1 (et vice versa). pas de glissement vers le haut ou vers le bas comme le clavier iOS.
J'ai essayé d'utiliser l'animation ci-dessous pour donner l'apparence d'un clavier iOS à mon UIPickerView :
- (IBAction)hidePicker {
UIPickerView *pickerView = [[UIPickerView alloc] init]; // default frame is set
float pvHeight = pickerView.frame.size.height;
float y = _screen.bounds.size.height - (pvHeight * -2); // the root view of view controller
[UIView animateWithDuration:0.5f delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
self.picker.frame = CGRectMake(0 , y, pickerView.frame.size.width, pvHeight);
} completion:nil];
}
- (IBAction)showPicker {
UIPickerView *pickerView = [[UIPickerView alloc] init]; // default frame is set
float pvHeight = pickerView.frame.size.height;
float y = _screen.bounds.size.height - (pvHeight); // the root view of view controller
[UIView animateWithDuration:0.5f delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
self.picker.frame = CGRectMake(0 , y, pickerView.frame.size.width, pvHeight);
} completion:nil];
}
J'aime cette animation, elle ressemble à l'animation du clavier d'iOS, mais le problème avec cette animation est... quand mon application est chargée, le UIPickerView est déjà affiché. comment le cacher quand il se charge pour la première fois ?
Merci.