7

我正在编写一个 UI 库,我希望能够在其中拥有 UIViews 的 alpha,就像设置了 UIViewGroupOpacity info.plist ket 一样。请参阅以下链接:

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

iOS 控制子视图的 UIView alpha 行为

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

有没有其他方法可以实现这一目标?我不想循环浏览所有子视图并设置每个子视图的 alpha,因为包含我的 lib 的项目可能启用了此密钥...

4

2 回答 2

17

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

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

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

于 2012-09-12T15:04:53.037 回答
1

对于 iOS 7.0 及更高版本:

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

于 2015-06-16T15:50:09.400 回答