CAGradientLayer 导致子视图不可见
CAGradientLayer causes subviews not being visible
你好 iOS 和 Swift,
的大师们
折腾了两天后,我拼命决定在这里问问。问题:
添加 CAGradientLayer 时,未显示子视图。
详情:
- 我已经制作了一个在扩展中添加 CAGradientLayer 的方法
UIView
- 我只需在任何视图上调用该方法,它本身就可以完美运行
- 但是,如果我尝试将此方法用于视图层次结构中的 UIView(作为背景),不幸的是所有子视图都不再可见,
渐变似乎 "overrender" 所有子视图
- 如果我不在容器视图上调用 "addGradient" 方法,所有子视图都会正确显示
- 惊人的细节:虽然子视图不可见,但它们以某种方式存在并且 "active"(例如 "invisible" UIButton 触发)
- 我正在使用自动布局
如有任何想法,我们将不胜感激!
提前致谢。
我之前遇到过类似的问题,通过在我的视图中添加背景视图解决了这个问题。所以视图层次结构如下:
view
backgroundView
someView
someViewInsideView
someOtherView
顶级视图 alpha 似乎也会影响子视图的 alpha。因此,我使用具有清晰背景颜色的视图,并使用 backgroundView 为视图提供背景颜色,并使用其他 属性 的 alpha 修饰符。
卢克赛德沃克,
不确定,但您始终可以尝试将您的图层添加到所有其他图层下方,这样它就不会覆盖现有的子视图。试试这个,在您的扩展程序中添加要查看的图层
self.layer.insertSublayer(layer, atIndex: 0)
尝试添加 ImageView 作为 subView 工作正常:)应该也能解决你的问题。
你好 iOS 和 Swift,
的大师们折腾了两天后,我拼命决定在这里问问。问题:
添加 CAGradientLayer 时,未显示子视图。
详情:
- 我已经制作了一个在扩展中添加 CAGradientLayer 的方法 UIView
- 我只需在任何视图上调用该方法,它本身就可以完美运行
- 但是,如果我尝试将此方法用于视图层次结构中的 UIView(作为背景),不幸的是所有子视图都不再可见, 渐变似乎 "overrender" 所有子视图
- 如果我不在容器视图上调用 "addGradient" 方法,所有子视图都会正确显示
- 惊人的细节:虽然子视图不可见,但它们以某种方式存在并且 "active"(例如 "invisible" UIButton 触发)
- 我正在使用自动布局
如有任何想法,我们将不胜感激! 提前致谢。
我之前遇到过类似的问题,通过在我的视图中添加背景视图解决了这个问题。所以视图层次结构如下:
view
backgroundView
someView
someViewInsideView
someOtherView
顶级视图 alpha 似乎也会影响子视图的 alpha。因此,我使用具有清晰背景颜色的视图,并使用 backgroundView 为视图提供背景颜色,并使用其他 属性 的 alpha 修饰符。
卢克赛德沃克,
不确定,但您始终可以尝试将您的图层添加到所有其他图层下方,这样它就不会覆盖现有的子视图。试试这个,在您的扩展程序中添加要查看的图层
self.layer.insertSublayer(layer, atIndex: 0)
尝试添加 ImageView 作为 subView 工作正常:)应该也能解决你的问题。