Ios 如何创建UIView';s子视图';根据它的α变化';s的父母';阿尔法?

Ios 如何创建UIView';s子视图';根据它的α变化';s的父母';阿尔法?,ios,uiview,storyboard,Ios,Uiview,Storyboard,设置某些子视图的alpha时遇到问题 使用故事板,我在视图控制器中有一个UIView,viewA,其中subView1,subView2,&subView3作为viewA中的子视图 当我将viewA的alpha值更改为0.5时,viewA的alpha值会更改,但其子视图的alpha值保持不变 默认情况下,它的子视图的alpha不应该根据其父视图而改变吗?我做错了什么 关于subView1.alpha=subView1.superview.alpha?关于subView1.alpha=subVie

设置某些子视图的alpha时遇到问题

使用故事板,我在视图控制器中有一个UIView,
viewA
,其中
subView1
subView2
,&
subView3
作为
viewA
中的子视图

当我将
viewA
的alpha值更改为0.5时,
viewA
的alpha值会更改,但其子视图的alpha值保持不变


默认情况下,它的子视图的alpha不应该根据其父视图而改变吗?我做错了什么

关于
subView1.alpha=subView1.superview.alpha

关于
subView1.alpha=subView1.superview.alpha

你应该检查一下这个问题


你应该检查一下这个


查看可在图层上设置的
allowsGroupOpacity
。还有一个全局info.plist键用于在应用程序范围内更改此行为

当UIViewGroupOpacity键不存在时,默认值为 现在是的。默认值以前为否

这意味着将首先创建透明视图的子视图 合成到该透明视图上,然后是预合成的子树 将作为一个整体绘制到背景上。无设置将导致 合成成本较低,但精确度也较低:中的每个视图 透明子树被合成到它下面的内容上,根据 到父级的不透明度,按照普通画家的算法顺序


查看可在图层上设置的
allowsGroupOpacity
。还有一个全局info.plist键用于在应用程序范围内更改此行为

当UIViewGroupOpacity键不存在时,默认值为 现在是的。默认值以前为否

这意味着将首先创建透明视图的子视图 合成到该透明视图上,然后是预合成的子树 将作为一个整体绘制到背景上。无设置将导致 合成成本较低,但精确度也较低:中的每个视图 透明子树被合成到它下面的内容上,根据 到父级的不透明度,按照普通画家的算法顺序

给你:

self.view.layer.allowsGroupOpacity = YES; 
这将适用于所有子视图、子视图的子视图以及所有这些

从文档中:

 * The default value of the property is read from the boolean
 * UIViewGroupOpacity property in the main bundle's Info.plist. If no
 * value is found in the Info.plist the default value is YES for
 * applications linked against the iOS 7 SDK or later and NO for
 * applications linked against an earlier SDK. */
您的项目可能未链接到iOS 7 SDK。如果希望此更改适用于所有视图,我将执行以下操作:

  • 去你的办公室
  • 添加标题为“组不透明度渲染”的行
  • 设置为是
来自苹果的文档:

UIViewGroupOpacity
“Renders with group opacity”
Specifies whether Core Animation layers inherit the opacity of their superlayer. See “UIViewGroupOpacity” for details.
iOS 3.0 and later
给你:

self.view.layer.allowsGroupOpacity = YES; 
这将适用于所有子视图、子视图的子视图以及所有这些

从文档中:

 * The default value of the property is read from the boolean
 * UIViewGroupOpacity property in the main bundle's Info.plist. If no
 * value is found in the Info.plist the default value is YES for
 * applications linked against the iOS 7 SDK or later and NO for
 * applications linked against an earlier SDK. */
您的项目可能未链接到iOS 7 SDK。如果希望此更改适用于所有视图,我将执行以下操作:

  • 去你的办公室
  • 添加标题为“组不透明度渲染”的行
  • 设置为是
来自苹果的文档:

UIViewGroupOpacity
“Renders with group opacity”
Specifies whether Core Animation layers inherit the opacity of their superlayer. See “UIViewGroupOpacity” for details.
iOS 3.0 and later