как добавить затемненный фон, найденный в UIAlertView - PullRequest
1 голос
/ 17 января 2012

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

enter image description here

Ответы [ 2 ]

0 голосов
/ 17 января 2012

Я согласен, что вы должны быть очень осторожны, чтобы иметь реальное обоснование для повторения того, что уже есть , но если вам это действительно нужно, это просто:

Создать изображение в формате PNGс тем же размером, что и экран целевого устройства, с альфа.T Заполните изображение черным и добавьте радиальный градиент непрозрачности, чтобы в центре он был относительно прозрачным, а к краям экрана он был более прозрачным.Этот эффект называется виньетированием.Возможно, в предпочитаемом вами редакторе изображений даже есть фильтр виньетирования, который вы можете использовать на полностью прозрачном изображении.

Этот подход к изображениям также имеет то преимущество, что позволяет вам использовать совершенно разные эффекты затухания фона.

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

UIImageView *vignetteView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"vignette.png"]];
vignetteView.backgroundColor = [UIColor clearColor];
vignetteView.userInteractionEnabled = YES; //this means users won't be able to touch the UI elements below
[self.view.window insertSubview: vignetteView belowSubview: myAlertView];
0 голосов
/ 17 января 2012

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

Если ваше приложение предназначено только для iOS 5, UIAlertView предлагает три новых стиля, позволяющих вводить текст, осуществлять безопасный ввод текста или комбинировать имя пользователя и пароль.

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

...