首页 > 解决方案 > 如何在 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

标签: iosswiftviewheightwidth

解决方案


你需要知道视图控制器的生命周期。

要获得任何视图的高度,请使用viewDidLayoutSubviews.

override func viewDidLayoutSubviews() {
      super.viewDidLayoutSubviews()

      print(view1.frame.size)
}

size属性将打印最终高度和宽度。


推荐阅读