когда я запускаю свое приложение, ничего не отображается (текстовые поля, кнопки ...), кроме фона градиента, я сейчас работаю над интерфейсом - PullRequest
0 голосов
/ 27 января 2020
import UIKit

class MainVC: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        }
    func backgroundcolor(){
        let newLayer = CAGradientLayer()
                    newLayer.colors = [UIColor.init(red: 0.2705882353, green: 0.4823529412, blue: 0.6156862745, alpha: 1).cgColor,UIColor.init(red: 0.6588235294, green: 0.8549019608, blue: 0.862745098, alpha: 1).cgColor]
                    newLayer.frame = view.frame
                    view.layer.addSublayer(newLayer)
    }
}

Ответы [ 2 ]

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

В вашем viewDidLayoutSubviews вызовите вашу функцию. Любые изменения, связанные с макетом, должны быть сделаны в viewDidLayoutSubviews

import UIKit

class MainVC: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        }
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        backgroundColor()
        }
    func backgroundcolor(){
        let newLayer = CAGradientLayer()
        newLayer.colors = [UIColor.init(red: 0.2705882353, green: 0.4823529412, blue: 0.6156862745, alpha: 1).cgColor,UIColor.init(red: 0.6588235294, green: 0.8549019608, blue: 0.862745098, alpha: 1).cgColor]
        newLayer.frame = view.frame
        self.view.layer.insertSublayer(newLayer, at: 0)
    }
}
1 голос
/ 27 января 2020

Попробуйте это

let gradientView = UIView()
gradientView.frame = view.bounds

let newLayer = CAGradientLayer()
newLayer.colors = [UIColor.init(red: 0.2705882353, green: 0.4823529412, blue: 0.6156862745, alpha: 1).cgColor,UIColor.init(red: 0.6588235294, green: 0.8549019608, blue: 0.862745098, alpha: 1).cgColor]
newLayer.frame = gradientView.bounds
gradientView.layer.addSublayer(newLayer)

self.view.addSubview(gradientView)
self.view.sendSubviewToBack(gradientView)
...