UIVIEW: перепад цвета как полного фона

Я нуждаюсь в том, чтобы поместить в UIView пониженный в звании осевой как фон экрана. Здесь пример

introducir la descripción de la imagen aquí

Я пробую с расширением UIVIEW

func addGradient(colors: [UIColor], locations: [NSNumber]? = nil, startPoint: CGPoint, endPoint : CGPoint) {
    let gradient: CAGradientLayer = CAGradientLayer()        
    gradient.frame = self.bounds
    gradient.name = "gradientLayer"
    gradient.colors = colors.map { $0.cgColor }
    gradient.startPoint = CGPoint(x: 0.0, y: 1.0)
    gradient.endPoint = CGPoint(x: 1.0, y: 1.1)
    gradient.locations = [1, 1]

    self.layer.insertSublayer(gradient, at: 0)
}

и я использую его, таким образом,

 self.backgroundLoginView.addGradient(
           colors: [Utils.Color.CELESTE, Utils.Color.COLOR_E8E8E8],
           startPoint: CGPoint.init(x: 1, y: 1),
           endPoint: CGPoint.init(x: 1, y: 1)
 )

Оставаясь таким:

introducir la descripción de la imagen aquí

Я тестирую ответ используя

@IBDesignable class DesignableView: UIView {
     @IBInspectable var gradientColor1: UIColor = UIColor.white {
        didSet{
            self.setGradient()
          }
     }

     @IBInspectable var gradientColor2: UIColor = UIColor.white {
         didSet{
             self.setGradient()
           }
     }

     @IBInspectable var gradientStartPoint: CGPoint = .zero {
         didSet{
             self.setGradient()
     }
}

@IBInspectable var gradientEndPoint: CGPoint = CGPoint(x: 0, y: 1) {
    didSet{
        self.setGradient()
    }
}

private func setGradient()
{
    let gradientLayer = CAGradientLayer()
    gradientLayer.colors = [self.gradientColor1.cgColor, self.gradientColor2.cgColor]
    gradientLayer.startPoint = self.gradientStartPoint
    gradientLayer.endPoint = self.gradientEndPoint
    gradientLayer.frame = self.bounds
    if let topLayer = self.layer.sublayers?.first, topLayer is CAGradientLayer
    {
        topLayer.removeFromSuperlayer()
    }
    self.layer.addSublayer(gradientLayer)
}

В .xib видят хорошо

introducir la descripción de la imagen aquí

Хотя в участнике соревнования это оказывается так:

2
задан 19.03.2019, 02:05
2 ответа

Это не очень ясный вопрос, но в то, что я понимаю, ты нуждаешься в этом:

https://hackernoon.com/color-it-with-gradients-ios-a4b374c3c79f у

, Хотя он на английском есть шаги fГЎciles очень оставления. Удачи!

0
ответ дан 02.12.2019, 05:48
  • 1
    Я продолжаю exctamente то же самое и результат - degradees, который не завершает экран как показывает примера наверху –  Bruno Sosa Fast Tag 12.03.2019, 14:24
  • 2
    В соединении, что pasé приходит проект доказательства, пробует загружать это и видеть различие с твоим có я говорю, или перешли это в repo Git, чтобы это видеть и мочь помогать тебе с –  David Leal 13.03.2019, 00:16
  • 3
    có я говорю шрифт especí ficamente в этой маршрут содержит xcuserdata , это создает много проблем пока реализуют pulling в branch других разработчиков, следовательно безопасно игнорировать это или удалять это, потому что он содержит bá sicamente личные конфигурации как: breakpoint, layout para interface de usuario, archivos abiertos, configuración de sanpshots, и т.д. шрифт: ¿ Игнорировать xcuserdata - безопасно? inglé s –  Hubert Ronald 19.03.2019, 15:21

Ты можешь пытаться с этим cГіdigo. привет atte.

import UIKit

class ViewController: UIViewController {{114]

let primaryColor = UIColor(red: 210/255, green: 109/255, blue: 180/255, alpha: 1)
let secondaryColor = UIColor(red: 52/255, green: 148/255, blue: 230/255, alpha: 1)

override func viewDidLoad() {
    super.viewDidLoad()

    view.addGradient(topColor: primaryColor, bottomColor: secondaryColor)
}

}

расширение UIView {{116]

func addGradient(topColor: UIColor, bottomColor: UIColor) {
    let gradient = CAGradientLayer()
    gradient.frame = self.bounds
    gradient.colors = [topColor.cgColor,bottomColor.cgColor]
    gradient.locations = [0.0, 1.0]
    gradient.startPoint = CGPoint(x: 0, y: 0)
    gradient.endPoint = CGPoint(x: 0, y: 1)
    self.layer.insertSublayer(gradient, at: 0)
}

}

0
ответ дан 02.12.2019, 05:48