родительский UIView не отображается, но подвиды показывают, что я nswift - PullRequest
0 голосов
/ 22 октября 2018

это код, который я написал

    let topViewa = UIView()
    topViewa.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(topViewa)
    topViewa.backgroundColor = .white
    topViewa.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 300).isActive = true
    topViewa.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 0).isActive = true
    topViewa.frame.size =  CGSize(width: screenWidth, height: 44)
    let fw = UILabel(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
    fw.backgroundColor = .red
    topViewa.addSubview(fw)

с screenWidth, равным ширине экрана.

и когда я запускаю это, это то, что я получаю

enter image description here

Почему я не получаю родительский UIView с белым фоном?

1 Ответ

0 голосов
/ 22 октября 2018

Почему я не получаю родительский UIView с белым фоном?

Поскольку белый вид не имеет размера.

Линия

topViewa.frame.size =  CGSize(width: screenWidth, height: 44)

... не имеет никакого эффекта.Вы решили использовать ограничений для позиционирования и размера этого представления.Теперь вы должны выполнить этот контракт, указав его как позицию, так и размер только с помощью ограничений.Вы не указали никаких ограничений по высоте или ширине (или, альтернативно, по нижним или конечным ограничениям), поэтому представление имеет нулевой размер, и вы ничего не видите.

Красное подпредставление, тем временем, остается видимым, потому что белое суперпредставление clipsToBounds - это false.Если бы это было true, вы бы тоже не увидели красное подпредставление.

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