UIView组在单张视图heirachy不透明

我正在写一个UI库,在那里我想能够拥有UIViews的alpha,就好像设置了UIViewGroupOpacity info.plist套件一样。 请参阅以下链接:

使UIView和子视图作为一个层而不是单独的半透明

iOS控制子视图的UIView阿尔法行为

但是,正如我正在写一个库,我不希望项目必须设置此全局键,并影响主项目的行为。

有没有其他的方式来实现这一目标? 我不想循环所有的子视图,并设置每个子视图的alpha,因为包括我的lib的项目可能有这个键启用…

是的,您可以设置视图图层的shouldRasterize化。

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

这将有与UIViewGroupOpacity相同的效果,但仅适用于containerView及其子视图。

对于iOS 7.0和更高版本:

从iOS 7.0开始,可以通过allowsGroupOpacity属性单独控制每个CALayer 。 通过将其设置为YES ,您将得到与设置UIViewGroupOpacity相同的行为,但仅限于该特定层。