ширина не определяется cgrect () - PullRequest
0 голосов
/ 09 апреля 2020

Я хотел спросить, почему мой layer.frame = cgrect () не принимает ширину (350), которую я установил в viewDidLayoutSubviews, даже если она печатается в консоли. но ширина остается той же (390), которую я установил в раскадровке.

override func viewDidLayoutSubviews() {

        width = masjidName.frame.width

        print(width)


    }


    override func viewDidLoad() {
        super.viewDidLoad()

        viewDidLayoutSubviews()

        let bottomLine1 = CALayer()
        bottomLine1.frame = CGRect(x: 0.0, y: masjidName.frame.height - 1, width: width, height: 1)
        bottomLine1.backgroundColor = UIColor.black.cgColor

        let bottomLine2 = CALayer()
        bottomLine2.frame = CGRect(x: 0.0, y: masjidName.frame.height - 1, width: width, height: 1)
        bottomLine2.backgroundColor = UIColor.black.cgColor

}

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Я заставил его работать, переместив то, что у меня было в viewdidload, в viewdidappear. Поскольку для обновления ширины требуется некоторое время, и перед ней вызывается viewdidload.

0 голосов
/ 09 апреля 2020

Переместите весь код в viewDidLayoutSubviews. viewDidLayoutSubviews - это метод обратного вызова, и вы не должны вызывать его явно. Я бы посоветовал вам go через жизненный цикл ViewController ЗДЕСЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...