Вопрос по ios, uiview – Непрозрачность группы UIView в единственном представлении heirachy

7

Я пишу библиотеку пользовательского интерфейса, в которой я хотел бы иметь возможность иметь альфа UIViews, как если бы был установлен кет UIViewGroupOpacity info.plist. Смотрите следующие ссылки:

Сделайте UIView и подпредставления прозрачными как один слой, а не индивидуально

iOS контролирует альфа-поведение UIView для подпредставлений

Но, когда я пишу библиотеку, я не хочу, чтобы проекты устанавливали этот глобальный ключ и влияли на поведение основного проекта.

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

Ваш Ответ

2   ответа
16

Да, вы можете установитьshouldRasterize слоя вида.

containerView.layer.shouldRasterize = YES;
// Not setting rasterizationScale, will cause blurry images on retina displays:
containerView.layer.rasterizationScale = [[UIScreen mainScreen] scale];

Это будет иметь тот же эффект, что иUIViewGroupOpacity но только дляcontainerView и это подпредставления.

Работает ли это, если superView это супер представление для иерархии? Похоже, что не имеет никакого влияния в iOS 7.
0

For iOS 7.0 and later:

Начиная с iOS 7.0, этим можно управлять для каждогоCALayer индивидуально черезallowsGroupOpacity имущество. Установив его наYES, вы получаете такое же поведение, как если быUIViewGroupOpacity был установлен, но только для этого конкретного слоя.

Похожие вопросы