скрыть/показать UIPicker с той же анимацией

В настоящее время я делаю проект, в котором мне нужно скрыть свой UIPicker, я сделал все скрытие и анимацию с помощью этого кода,

при событии нажатия кнопки пишется этот код:

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.8];
    CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, -200);
    self.picker.transform = transfrom;
    self.picker.alpha = self.picker.alpha * (-1) + 1;
    [UIView commitAnimations];

и при просмотре инициализировалась загрузка;

    self.picker.alpha = 0;
    [self.view addSubview:self.picker]; //i dont really need this one

так что здесь средство выбора будет отображаться от кнопки вверх (0,-200), но когда я снова нажимаю кнопку, оно сразу же исчезает, поскольку self.picker.alpha переходит к 0. Я также пытался установить задержку анимации и [UIView setAnimationDelay: 3] ; и попытался также установить анимациюDuration больше, но это не влияет, когда она собирается скрыться.

я хотел бы знать, как мне сделать так, чтобы UIPicker скрывался так же, как он появляется. надеюсь, это не так запутанно. спасибо


person Ace Munim    schedule 05.08.2013    source источник


Ответы (2)


Чтобы сбросить представление в исходное положение, вам нужно сбросить transform на CGAffineTransformIdentity.

person Wain    schedule 05.08.2013

Как упоминалось в @Wain, вы изменили свойство transform при отображении UIPickerView.

Если вы хотите, чтобы представление выбора исчезло при нажатии кнопки, вам нужно снова установить его преобразование.

Вот ссылка для изучения анимации в UIView в iOS:
http://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/animatingviews/animatingviews.html

person Puneet Sharma    schedule 05.08.2013