【问题标题】:Gradient mask on UIScrollView slow to updateUIScrollView 上的渐变蒙版更新缓慢
【发布时间】:2016-02-22 00:00:21
【问题描述】:

我有一个 UIScrollView 子类,其中包含一个非常宽的 UIView 子类,我想淡出可见内容的边缘。这是我在 UIScrollView 子类中得到的:

private var gradientMask = CAGradientLayer()
override func layoutSubviews() {
    super.layoutSubviews()

    gradientMask.frame = self.bounds
    gradientMask.colors = [UIColor(white: 0.0, alpha: 0.18).CGColor,
        UIColor(white: 0.0, alpha: 0.95).CGColor,
        UIColor(white: 0.0, alpha: 0.95).CGColor,
        UIColor(white: 0.0, alpha: 0.0).CGColor
    ]

    let fadeStart:CGFloat = 50.0 / self.bounds.width
    gradientMask.startPoint = CGPoint(x:0, y:0.5)
    gradientMask.endPoint = CGPoint(x:1, y:0.5)
    let fadeEnd = (self.bounds.width - 40.0) / self.bounds.width
    gradientMask.locations = [fadeStart,fadeStart+0.1,fadeEnd,1.0]

    self.layer.mask = gradientMask
}   

它确实有效,但有一个滞后。滚动后,渐变似乎会随着内容滚动片刻,然后迅速回到预期位置。如何确保滚动视图的边缘淡出——滚动时渐变不会移动?

【问题讨论】:

    标签: swift uiscrollview gradient mask


    【解决方案1】:

    修复只是将UIScrollView 子类嵌入到应用了渐变的视图中。就是这样!

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 2012-01-12
      相关资源
      最近更新 更多