Я добавляю UIViews динамически в коде. Есть много мнений, которые я хочу добавить. Вот, например, один:
let typeImage = UIImageView()
typeImage.translatesAutoresizingMaskIntoConstraints = false
rootView.addSubview(typeImage)
typeImage.widthAnchor.constraint(equalToConstant: 28).isActive = true
typeImage.heightAnchor.constraint(equalToConstant: 28).isActive = true
typeImage.leftAnchor.constraint(equalTo: rootView.leftAnchor, constant: 4).isActive = true
typeImage.topAnchor.constraint(equalTo: rootView.topAnchor, constant: 4).isActive = true
typeImage.backgroundColor = gh.myRed
typeImage.image = UIImage(named: "ic_question_bej")
Я хочу посчитать сумму всех элементов, которые я добавляю, и, наконец, установить это подсчитанное значение в высоту моего корневого представления. Проблема в том, что
typeImage.frame.size.height
typeImage.bounds.size.height
всегда возвращать 0.0
Так, как я могу получить высоту в CGFloat недавно добавленного UIView через код?
Может быть, я должен установить высоту rootview, чтобы обернуть все мои подпредставления по-другому?
Редактировать
Xcode загружает представление с некоторой задержкой, и если вы попытаетесь получить размер представления сразу после добавления его в родительский режим, вы получите 0.0 размеров.
Вы должны позвонить yourCustomView.layoutIfNeeded()
, прежде чем проверять размеры.
Спасибо Chenjtc за правильный ответ.