Можно ли изменить кадр UIAlertView? - PullRequest
1 голос
/ 22 февраля 2010

Я хочу переместить кадр UIAlertView, потому что я добавляю к нему UITextFied и когда клавиатура скрывает кнопки Cancel и Ok, которые находятся отдельно от моего alertView

1 Ответ

1 голос
/ 14 мая 2010

Вы просто хотите переместить весь просмотр предупреждений вокруг или переместить представления внутри кнопки? Если первое, UIAlertViews является подклассом UIView. Просто используйте свойство .frame.

Если это последнее, я бы рекомендовал не делать этого. Вместо этого я бы, вероятно, предложил модальный вид некоторых видов. И подать в Apple радар о том, как это возможно.

По сути, вам нужно создать подкласс UIAlertView, чтобы изменить само представление. Однако необходимо указать, что UIAlertViews являются очень хрупкими (кнопки в представлении являются частным классом, и, IIRC, внутренние компоненты были изменены ранее).

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

В качестве альтернативы, есть также «Сделайте так, чтобы оповещение содержало сообщение, занимающее две строки, и добавьте представление оповещения так, чтобы оно охватывало это подпредставление» за счет наличия сообщения в оповещении. Так же, как и по-другому.

...