Сдвиг маскирующего слоя карты отображает / перемещает вид.Что я делаю неправильно? - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу добавить fadeview на 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
}

изображение 1 изображение 2

1 Ответ

0 голосов
/ 19 февраля 2019

Я решил это!

Я использовал максимальные границы основных видов вместо видов карты.

Поэтому я заменил

gradientMaskLayer.frame = mapView.bounds

на:

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

Ура!

...