ios - CAGradientLayer 导致 subview 不可见

标签 ios swift cagradientlayer

您好 iOS 和 Swift 大师们,

折腾了两天后,我拼命决定在这里问问。问题:

添加 CAGradientLayer 时,不显示 subview 。

详细信息:

  • 我做了一个方法来在扩展中添加一个 CAGradientLayer 界面 View
  • 我只需在任何 View 上调用该方法,它本身就可以完美运行
  • 但是如果我尝试将此方法用于 View 层次结构中的 UIView(作为背景),不幸的是所有 subview 都不再可见, 渐变似乎“覆盖”了所有 subview
  • 如果我不在容器 View 上调用“addGradient”方法,所有 subview 都会正确显示
  • 惊人的细节:虽然 subview 不可见,但它们以某种方式存在并且“活跃”(例如,“不可见”的 UIButton 触发)
  • 我正在使用自动布局

任何想法将不胜感激! 提前致谢。

最佳答案

卢克赛德沃克,

不确定,但您始终可以尝试将您的图层添加到所有其他图层下方,这样它就不会覆盖现有的 subview 。试试这个,在你的扩展中添加要查看的图层

self.layer.insertSublayer(layer, atIndex: 0)

尝试添加 ImageView 作为 subView 工作正常 :) 应该也能解决您的问题。

关于ios - CAGradientLayer 导致 subview 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37408030/

相关文章:

ios - 如何将带有回调的 Objective-C 传递给 Swift 方法?

ios - Swift-无论哪个ViewController启动,在应用启动时都显示showingSplashView

ios - 如何设置渐变角度和类型到 CAGradientLayer

iOS移动导航栏箭头

ios - 在后台运行代码并获取返回码

ios - UICollectionView 滚动 ViewController

ios - iOS 中的导航栏

ios - 无法获取当前类中弹出导航控件的概念

ios - CAGradientLayer 对角渐变

ios - 自定义 CAGradientLayer 不设置动画