gpt4 book ai didi

ios - 无法获取 UIView 大小

转载 作者:行者123 更新时间:2023-11-28 11:55:38 24 4
gpt4 key购买 nike

我在代码中动态添加 UIView。有很多观点想补充。这是一个例子:

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")

我想计算我添加的所有元素的总和,最后将这个计算值设置为我的 Root View 高度。问题是

typeImage.frame.size.height
typeImage.bounds.size.height

总是返回 0.0

那么如何通过代码获取新添加的UIView的CGFloat中的高度呢?也许我应该设置 rootview 的高度以另一种方式包装我的所有 subview ?

编辑

Xcode 会延迟加载 View ,如果您在将 View 添加到父 View 后立即尝试获取 View 大小,您将获得 0.0 大小。

在检查尺寸之前,您必须调用 yourCustomView.layoutIfNeeded()

感谢 Chenjtc 的正确答案。

最佳答案

您可以像这样添加代码:typeImage.layoutIfNeeded()在代码之前:
typeImage.frame.size.height
typeImage.bounds.size.height
约束不会立即布局,你应该使用layoutIfNeeded布局 View ,然后你可以得到第帧

关于ios - 无法获取 UIView 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com