Swift Mapview图层蒙版可裁剪/移动视图。我究竟做错了什么?

时间:2019-02-14 14:50:58

标签: ios swift applet mapkit gradient

我想在下面50%的地图视图上添加渐变视图。但是,一旦我将CAGradientLayer添加到mapview.layer.mask,我就会得到奇怪的结果,看起来像是裁剪了地图视图,还是将其向下和向左移动?

当我运行调试视图层次结构时,看起来似乎是正确的结果(图像1),但是在设备上看起来却完全不同(图像2)。

override func viewDidLoad() {    

@IBOutlet weak var mapView: MKMapView!
    // Gradient
    let gradientMaskLayer = CAGradientLayer()
    gradientMaskLayer.frame = mapView.bounds
    gradientMaskLayer.colors = [UIColor.clear.cgColor, UIColor.black.cgColor]
    gradientMaskLayer.locations = [0.0, 0.05]

    mapView.layer.mask = gradientMaskLayer
    mapView.translatesAutoresizingMaskIntoConstraints = false
}

transpose image 1

1 个答案:

答案 0 :(得分:0)

我解决了!

我使用主视图的最大边界而不是mapviews。

所以我替换了

gradientMaskLayer.frame = mapView.bounds

具有:

gradientMaskLater.frame = CGRect(x:0, y:0, width: view.bounds.maxX, height: view.bonds.maxY)

干杯!