Picker View не появляется при первой попытке щелчка кнопки
У меня есть кнопка в крайнем правом углу ячейки.
Теперь у меня есть представление выбора, которое нужно отображать при нажатии кнопки.
Работает отлично со следующим кодом:
-(IBAction)buttonPressed:(id)sender
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
CGAffineTransform transform = CGAffineTransformMakeTranslation(0, 200);
monthPicker.transform = transform;
[self.view addSubview:monthPicker];
[UIView commitAnimations];
}
Но я искал, чтобы скрыть режим выбора, когда он виден и будет отображаться, когда нет представления выбора, я нашел решение для него..... добавил следующий код к вышеописанному методу:
monthPicker.hidden = [monthPicker isHidden]? НЕТ: ДА;
Теперь представление выбора не отображается в первой попытке, когда я нажимаю кнопку, но он работает отлично от второй попытки и позже.
Любые предложения?
Ответы
Ответ 1
Ответ от @Padavan должен работать, но если вы хотите эффект замирания "в анимации", скрытое свойство не выполняет эту работу. Вместо этого вы должны использовать свойство UIView.alpha. Вот мой пример кода для этого.
- (void) viewDidLoad {
[super viewDidLoad];
/////////////////////////////////////////////////
// ... Initialize your month picker here //
/////////////////////////////////////////////////
monthPicker.alpha = 0;
[self.view addSubview:monthPicker];
}
- (void)buttonPressed:(id)sender
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
CGAffineTransform transform = CGAffineTransformMakeTranslation(0, 200);
monthPicker.transform = transform;
monthPicker.alpha = monthPicker.alpha * (-1) + 1;
[UIView commitAnimations];
}
Ответ 2
Первоначально скрыт ли месяцPicker? Когда метод называется первым. Если нет - он скрывается, и вы не можете его увидеть. Возможно, вам нужно установить monthPicker.hidden=YES
в методе init.