ios - 如何在 Swift/iOS 中获取以编程方式添加的视图的宽度和高度?
问题描述
我以编程方式添加了 UIView 和 UIImageView,但我需要它的宽度和高度。是否可以获取它,如果可以,请分享如何获取它。
代码:
let View1: UIView = {
let viewView = UIView()
viewView.translatesAutoresizingMaskIntoConstraints = false
viewView.contentMode = .scaleAspectFit
print(UserDefaults.standard.bool(forKey: "backgroundColourSelected"))
if UserDefaults.standard.bool(forKey: "backgroundColourSelected") {
viewView.backgroundColor = self.viewColor
}else {
viewView.backgroundColor = .white
}
viewView.clipsToBounds = true
return viewView
}()
self.canvasView.addSubview(View1)
View1.centerXAnchor.constraint(equalTo: canvasView.centerXAnchor, constant: 0).isActive = true
View1.centerYAnchor.constraint(equalTo: canvasView.centerYAnchor, constant: 0).isActive = true
View1.widthAnchor.constraint(equalTo: canvasView.widthAnchor, constant: 0).isActive = true
View1.heightAnchor.constraint(equalTo: canvasView.widthAnchor, multiplier: aspectRatio).isActive = true
解决方案
你需要知道视图控制器的生命周期。
要获得任何视图的高度,请使用viewDidLayoutSubviews
.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
print(view1.frame.size)
}
size
属性将打印最终高度和宽度。
推荐阅读
- nuxt.js - NuxtJS 子动态页面未使用 nuxt-link 导航到/呈现
- angular - 为输入动态创建角度 2+ 参考 ngModel 变量
- c++ - CGO,将结构从 go 传递到 c++
- kubernetes - 在 Kubernetes 服务中允许 port 和 targetPort 不同有什么好处?
- javascript - VUE-使用 GetElementByClassName 不起作用
- node.js - 在 express 中访问部分视图时出现问题
- java - 在另一个类中调用方法时出错
- delphi - 仅从 DBGrid 中删除行
- sql-server - 动态 SQL 遇到的问题
- node.js - 尝试在 Ubuntu 上加载 ODBC 时出错