CAGradientLayer другой результат между iPhone SE и другими - PullRequest
1 голос
/ 21 апреля 2020

У меня есть CAGradientLayer, ничего сложного

    let gradient: CAGradientLayer = CAGradientLayer()
    gradient.colors = [UIColor.clear.cgColor, Colors.Corporate.cgColor]
    gradient.locations = [0.0 , 1.0]
    gradient.startPoint = CGPoint(x: 0.0, y: 0.0)
    gradient.endPoint = CGPoint(x: 0.0, y: 1.0)
    gradient.frame = bounds
    mainImage.layer.insertSublayer(gradient, at: 0)

У меня другой результат на iPhoneSE (симулятор) и iPod (реальное устройство) ... на любом другом устройстве, iPhoneX (реальное устройство) и iPhone8 ( Симулятор) Ожидается работа.

iPhoneSE Iphone8

Наложение градиента в нижней части отличается. Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

2 голосов
/ 27 апреля 2020

Я думаю, это зависит от того, когда слой создан и вставлен в иерархию подслоев. Можете ли вы попытаться обновить его фрейм на viewWillAppear (если у вас есть доступ к слою из контроллера вида) или подобном?

Подобный слой должен всегда следовать границам родительского представления при их изменении.

...