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
相同的行为,但仅限于该特定层。