2009-12-08 2 views
1

Мое приложение использует черную навигационную панель и другие пользовательские цвета для различных компонентов пользовательского интерфейса, а темно-синие тонированные оповещения выглядят действительно неуместными.Каков самый простой способ сделать UIAlertView тонированным другого цвета?

Я хотел бы сделать вид предупреждения полупрозрачным черным, не прибегая к использованию файла изображения.

Я не против создания UIImage, так как я понимаю, что единственный способ изменить фон - использовать UIImage, но все мои попытки (основанные на вопросе 1 ниже) просто сделать сплошной черный прямоугольник позади предупреждение вид (. углы не округляются)

Связанные, но не дублировать:

  1. how to change background color of UIAlertView ?
  2. how can I change the color of UIAlartView ?

Первый использует изображение «Background.png», чтобы установить это как фон. Второй вопрос связан с первым и утверждает, что ОП не должен этого делать.

ответ

0

Поскольку UIAlertView не позволяет изменять цвет фона через любой открытый API, единственный способ настроить его цвет фона - это подкласс UIAlertView.

+1

Это действительно не вариант. Из документов: «Класс UIAlertView предназначен для использования как есть и не поддерживает подклассы». – Johan

6

Тот факт, что для этого не существует крючков API, должен быть красный флаг - вы не должны этого делать. Он не использует Private API (который вызовет у вас отказ), но он использует недокументированное поведение, против которого Apple советует. Фактически, на прошлой неделе в iPhone Tech Talk я был специально предупрежден евангелистом Apple Dev, чтобы он не делал подобного, потому что он прорвется в будущем.

Если вы действительно хотите сделать свое дело, когда дело доходит до UIAlertViews, вы должны создать свой собственный вид и представить его через Modal View Controller.

+2

Nailed it - теперь это путь, особенно, когда Apple анализирует двоичные файлы для незаконного доступа к частным API. –

Смежные вопросы