Идея состоит в том, чтобы показать диалог прогресса. Я пытаюсь покрыть родительский вид (как правило, весь экран) прозрачным черным (альфа 0.2). Кроме того, я хочу показать меньший вид, также прозрачный с другим цветом. На него может не влиять цвет или прозрачность первого вида. В этом 2-м представлении я хочу, чтобы элементы пользовательского интерфейса были непрозрачными. Я пробовал все и даже нашел здесь сообщения, которые касаются чего-то подобного, но использует только один прозрачный слой. И те уже используют странные трюки. Есть ли стандартный, простой способ достижения этого?Прозрачный вид на другой прозрачный UIView с непрозрачным контентом?
ответ
Я нашел ответ в блоге: http://cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html
Решение переопределить drawRect:
и заботиться о альфа в нем. Вы не можете коснуться свойства UIView's
alpha, а также не можете установить цвет фона представления на что-либо, кроме прозрачного. Весь чертеж должен быть сделан в drawRect:.
Таким образом, я смог складывать прозрачные виды и накладывать непрозрачные элементы сверху.
Добавление вашего непрозрачного представления в качестве подвид прозрачного представления не будет работать. То, что я делал в прошлом, имеет класс UIView
, который добавляет полупрозрачный subview и непрозрачный подзаголовок. Таким образом, прозрачный вид не будет влиять на непрозрачный.
Без всякого взлом вокруг или сложного и, возможно, медленным обычая drawRect:
, это возможно, если вы группировать просмотры:
Создать вид ограничительный, охватывающий и держит весь диалог. Это представление не имеет видимого содержимого, а его backgroundColor понятен. Его альфа составляет 1,0.
Теперь добавьте все прозрачные виды (с альфа-< 1) к этому, что вы хотите, а также добавьте непрозрачные виды. Будьте внимательны, чтобы не добавлять какие-либо непрозрачные представления в виде подпрограмм прозрачных, вместо этого добавлять их в виде прямых представлений ограниченного представления. Таким образом, они наследуют свою альфа 1.0.
UIView *progressDialogView = [[UIView alloc] initWithFrame:dialogFrame];
progressDialogView.backgroundColor = [UIColor clearColor];
progressDialogView.alpha = 1.0; //you can leave this line out, since this is the default.
UIView *halfTransparentBackgroundView = [[UIView alloc] initWithFrame:dialogFrame];
halfTransparentBackgroundView.backgroundColor = [UIColor blackColor]; //or whatever...
halfTransparentBackgroundView.alpha = 0.5;
[progressDialogView addSubview: halfTransparentBackgroundView];
UIView *progressBarView = [[UIView alloc] initWithFrame:progressBarFrame];
progressBarView.backgroundColor = [UIColor blueColor];
[progressDialogView addSubview: progressBarView];
Вместо установки альфа-свойства, используйте следующие действия для установки цвета фона/непрозрачности для каждого вида:
view1.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.3];
Используйте любые значения, вы хотите для красного, зеленого, синего и альфа.
Мне нужно было иметь прозрачный вид сверху другого вида. Представление сделать прозрачным Я только что сделал:
self.alpha = 0.5;
Например:
- (void) configureView
{
self.frame = CGRectMake(0, 0, 640, 960);
self.backgroundColor = [UIColor greyColor];
self.alpha = 0.5;
}
- 1. Настоящий прозрачный UIView с непрозрачным UIButton или UIImage
- 2. Прозрачный вид?
- 3. Рисование круговой прозрачный вид внутри UIView
- 4. Прозрачный вид с Android
- 5. WPF прозрачный текст с непрозрачным фоном
- 6. iPhone - Нарисуйте прозрачный прямоугольник на UIView, чтобы открыть вид ниже
- 7. Прозрачный вид над ImageView
- 8. Прозрачный размытый вид не работает
- 9. Как использовать presentModalViewController создать прозрачный вид
- 10. uisearchbar прозрачный вид фона
- 11. Как добавить прозрачный вид?
- 12. Внешний вид фона прозрачный
- 13. вид полей прозрачный?
- 14. Прозрачный вид во время навигации
- 15. Сохранить UIView в прозрачный PNG
- 16. Мой фон с переключателем прозрачный, как сделать его непрозрачным?
- 17. Прозрачный gif не прозрачный?
- 18. iOS 7 - прозрачный распознаватель жестов UIView
- 19. Как сделать прозрачный прозрачный TreeView?
- 20. Как сделать прозрачный прозрачный?
- 21. Прозрачный вид таблицы над картой
- 22. Swift IOS прозрачный вид на оригинальный вид. Overlay. Subview
- 23. Прозрачный ViewController
- 24. Прозрачный вид наложения для рисунка
- 25. прозрачный UIStatusBar с UISearchController
- 26. Как получить прозрачный вид таблицы
- 27. Как создать прозрачный UIView с непрозрачной границей
- 28. Нарисуйте частично прозрачный UIView при использовании backgroundColor
- 29. React native: прозрачный вид внутри непрозрачный вид
- 30. Добавить прозрачный вид в полупрозрачный вид
Я знаю, что "трюк". Но становится трудным, если вы хотите получить полупрозрачный вид поверх более прозрачного представления и кнопок поверх всего непрозрачного. Поэтому я доволен кодом, который я нашел в этом блоге, на который я ссылался в своем собственном ответе. Он вообще не использует значение Alpha. – Krumelur
Как это осложняется? Я так думаю, что он остается очень аккуратным и понятным. – fzwo
Сложно так, что вам всегда понадобятся два вида, чтобы иметь один прозрачный с непрозрачным контентом сверху. Вот почему я предпочитаю другое решение. – Krumelur