Ответ 1
Отвечая на мой собственный вопрос.
Я искал высоко и низко для проекта prefab UIAlertView, который предлагал функции, которые я искал. Я уверен, что они существуют - я видел приложения с отличными предупреждениями. Их авторы не должны делиться друг с другом - это совершенно нормально, я понимаю.
Итак, я написал свое. TSAlertView - это новаторская реализация модального представления предупреждения, совместимого с интерфейсом UIAlertView. С точки зрения визуального внешнего вида, хотя это не идеальная копия с пикселями, она приближается. Функции, которые он предлагает, в основном, я изложил в исходном вопросе:
-
возможность установки ширины отображения и максимальной высоты представления предупреждения. Это позволяет мне получать более приятные предупреждения на iPad.
-
возможность указывать расположение кнопок (сложенных друг на друга и бок о бок), даже если есть только две кнопки. Это всегда беспокоило меня с помощью UIAlertView - если бы у меня были две кнопки, они всегда располагались бок о бок. Большая проблема, если текст кнопки не подходит.
-
возможность запрашивать пользователей для ввода через UITextField. Время от времени вам просто нужен быстрый и грязный способ предложить пользователю что-то ввести.
-
изменение размера/перемещение при появлении клавиатуры. (происходит при запросе ввода пользователя)
-
возможность иметь UITextView для прокрутки текста. Можно явно задать этот параметр вместо того, чтобы полагаться на UIAlertView для обмена в UITextView для длинного текста.
-
рядом с идеальной копией UIAlertView для основного дисплея.
-
поддержка пользовательских фонов
-
совместим с интерфейсом UIAlertView, то есть это замена.
В прошлом году я использовал несколько больших проектов с открытым исходным кодом в своем коде. Мои два фаворита MBProgressHUD и MGSplitViewController, каждый из которых размещен в github. Я решил поделиться TSAlertView таким же образом.
https://github.com/TomSwift/TSAlertView
У первоначальной реализации наверняка есть некоторые ошибки. Я еще не использовал его в проекте доставки, но я использую его в своем текущем проекте, который будет завершен через несколько недель. Если вы хотите попробовать использовать его самостоятельно, пожалуйста, не стесняйтесь. Опубликуйте любые вопросы о github или, еще лучше, отправьте исправление.
Наслаждайтесь!
Вот несколько скриншотов, показывающих 1) 2 кнопки сложения 2) 3) Явная настройка ширины