UIPickerView заморожен при запуске - PullRequest
0 голосов
/ 24 ноября 2010

У меня странная проблема, мне удалось смешать UIActionSheet вместе с UIPickerView и вызвать их оба из UITextField, но проблема в том, что для использования UIPickerView я должен сначала нажать / нажать на кнопку «Готово». Затем вид выбора становится доступным для использования. Но изначально, когда появляется вид сборщика, он заморожен и непригоден для использования - колесо не двигается. Только после нажатия «Готово» фон становится более прозрачным, я вижу на заднем плане другие поля UITextFields, которые я добавил в scrollView, и я могу перемещать колесо в этой точке. Поэтому, чтобы переместить колесо, мне нужно сначала нажать «Отмена» или «Готово», оно застыло при первом появлении.

Вот мой код (часть из исследований)

<code> 
myPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,185,0,0)];
myPicker.delegate = self;
myPicker.showsSelectionIndicator = YES;
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Title"    delegate:self cancelButtonTitle:@"Done" destructiveButtonTitle:@"Cancel" otherButtonTitles:nil];
[menu addSubview:myPicker];
[menu showInView:self.view];
[menu setBounds:CGRectMake(0,0,320, 700)];
[myPicker release];
[menu release];

Решение, о котором я подумал, состоит в том, чтобы автоматически нажимать «Готово» в первый раз, чтобы пользователю не приходилось нажимать «Готово», чтобы использовать колесо, а затем снова нажимать «Готово», когда выбирается колесо. , Но я не уверен, что это правильный подход.

Я тоже пытался это сделать:

<code>
 [menu showInView:scrollView];

Но результат был тот же - колесо не двигается.

Кто-нибудь знает, как мне это решить?

Спасибо, Виктор.

1 Ответ

0 голосов
/ 24 ноября 2010

Ваше приложение не будет одобрено, если вы неправильно используете UIActionSheet, и оно не предназначено для работы таким образом, и (как вы обнаружили и как я обнаружил, когда я однажды попробовал), оно делаетзабавные вещи, когда вы пытаетесь использовать его таким образом.Так что это не трудоемкое усилие, чтобы заставить его работать.

Вы должны использовать стандартный полноэкранный вид, содержащий ваш сборщик, а затем использовать presentModalController:.В качестве альтернативы вы можете вручную добавить средство выбора в качестве подпредставления вашего основного вида, если вы хотите использовать его в качестве наложения.

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