我正在编写一个 UI 库,我希望能够在其中拥有 UIViews 的 alpha,就像设置了 UIViewGroupOpacity info.plist ket 一样。请参阅以下链接:
但是,当我正在编写一个库时,我不希望项目必须设置这个全局键,并影响主项目的行为。
有没有其他方法可以实现这一目标?我不想循环浏览所有子视图并设置每个子视图的 alpha,因为包含我的 lib 的项目可能启用了此密钥...
我正在编写一个 UI 库,我希望能够在其中拥有 UIViews 的 alpha,就像设置了 UIViewGroupOpacity info.plist ket 一样。请参阅以下链接:
但是,当我正在编写一个库时,我不希望项目必须设置这个全局键,并影响主项目的行为。
有没有其他方法可以实现这一目标?我不想循环浏览所有子视图并设置每个子视图的 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 开始,这可以CALayer
通过allowsGroupOpacity
属性单独控制。通过将其设置为YES
,您将获得与设置相同的行为UIViewGroupOpacity
,但仅针对该特定层。