Кнопки UIAlertView находятся за пределами окна предупреждения в iPad?
У меня есть проблема, связанная с UIAlertView . Я создал предупреждение с сообщением тела и двумя кнопками для OK и Отмена. когда я представляю окно alertWindow, кнопки размещаются вне окна предупреждений и недоступны. это станет нормальным, когда ориентация изменится.
я попытался изменить размер alertWindow, но проблема существует.
вот мой код
UIAlertView *errorAlert=[[UIAlertView alloc]initWithTitle:errorAlertTitle message:errorAlertMessage delegate:self cancelButtonTitle:errorAlertClose otherButtonTitles:@"Reload", nil];
errorAlert.tag=2;
errorAlert.frame = CGRectMake(0,0,500,600);
[errorAlert show];
[errorAlert release];
любое решение?
2 ответа
Когда вы пишете "окно оповещения", вы имеете в виду видимую часть UIAlertView
в котором есть текст и кнопки, верно? Вы думаете, что вы устанавливаете рамку "окна оповещения" в своем коде? Вы действительно устанавливаете фрейм прозрачного представления блокировки, которое не позволяет пользователю взаимодействовать с остальным пользовательским интерфейсом и содержит "окно оповещения"? Иерархия представления UIAlertView является частной, поэтому мы не можем точно знать, как она структурирована, но вы можете манипулировать не тем, что нужно. Обратите внимание, что документация также предупреждает против вмешательства в UIAlertView
просматривать иерархию, поэтому вы можете не захотеть устанавливать какие-либо свойства вида, такие как фрейм для вашего UIAlertView
,
Если вы действительно хотите изменить "окно оповещения", вы можете:
- Проанализируйте подпредставления представления предупреждений, написав код для их просмотра и записи полезной информации (фрейм, тип и т. Д.). Это может сказать вам, каким подвидом вы действительно хотите манипулировать.
а потом
- Используйте обратные вызовы в UIAlertViewDelegate для манипулирования окном оповещения после того, как UIAlertView был создан и собирается стать видимым.
Но, может быть, вы хотите посмотреть на UIActionSheet
или же UIPopoverController
если автоматическое моделирование UIAlertView
у тебя не работает?
По вашему требованию я просто использую Actionsheet, но для вашей проблемы сделайте это:
добавить этот код:
errorAlert.frame = CGRectMake(0,0,500,600);
после
[errorAlert show];