Opacité du groupe UIView en vue unique heirachy

J'écris une bibliothèque d'interface user dans laquelle je voudrais pouvoir avoir l'alpha des UIViews comme si le ket UIViewGroupOpacity info.plist était défini. Voir les liens suivants:

Rendre UIView et les sous-vues translucides comme une couche, pas individuellement

iOS contrôlant le comportement d'UIView alpha pour les sous-vues

Mais, comme j'écris une lib, je ne veux pas que les projets aient à définir cette key globale et à affecter le comportement du projet principal.

Y a-t-il un autre moyen d'y parvenir? Je ne veux pas faire défiler toutes les sous-vues et définir l'alpha de chaque sous-vue, car le projet qui inclut ma bibliothèque pourrait avoir cette key activée …

Oui il y a, vous pouvez définir shouldRasterize de la couche de la vue.

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

Cela aura le même effet que UIViewGroupOpacity mais seulement pour containerView et ses sous-vues.

Pour iOS 7.0 et versions ultérieures:

Depuis iOS 7.0, cela peut être contrôlé individuellement pour chaque CALayer via la propriété allowsGroupOpacity . En le définissant sur YES , vous obtenez le même comportement que si UIViewGroupOpacity était défini, mais uniquement pour ce calque particulier.