我想在下面50%的mapview上添加一个fadeview。但是,只要我将CAGradientLayer添加到mapview.layer.mask,我就会得到一个奇怪的结果,看起来像是在裁剪mapview,还是向下移动到左边?
当我运行调试视图层次结构时,我得到了正确的结果(图像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
}
我解决了!
我使用主视图最大边界而不是mapviews。
所以我换了
gradientMaskLayer.frame = mapView.bounds
有:
gradientMaskLater.frame = CGRect(x:0, y:0, width: view.bounds.maxX, height: view.bonds.maxY)
干杯!