Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Swift/ iOS中获取编程添加的视图的宽度和高度?

如何在Swift/ iOS中获取编程添加的视图的宽度和高度?
EN

Stack Overflow用户
提问于 2021-08-13 02:20:24
回答 2查看 53关注 0票数 0

我已经通过编程添加了一个UIView和一个UIImageView,但我需要它的宽度和高度。可以获取吗?如果可以,请分享如何获取。

代码:

代码语言:javascript
运行
AI代码解释
复制
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
EN

回答 2

Stack Overflow用户

发布于 2021-08-13 02:26:07

对ViewController使用override func viewWillLayoutSubviews(),对UIView使用override func layoutSubviews()。

示例:-用于UIViewControllers

代码语言:javascript
运行
AI代码解释
复制
override func viewWillLayoutSubviews() {
    print(yourView.frame.height)
}

对于UIViews

代码语言:javascript
运行
AI代码解释
复制
override func layoutSubviews() {
    print(yourView.frame.height)
    print(yourView.frame.width)

}

由于视图位于函数内部,因此只需将其移出即可

代码语言:javascript
运行
AI代码解释
复制
class YourController / YourView {
private let imgView: UIImageView = {
    let iv = UIImageView()
    // do whatever you want with your image using iv. eg. iv.contentMode = .scaleAspectFit or iv.image = UIImage(named: "custom_img")
    return iv
}()

override func viewDidLoad() {
    super.viewDidLoad()
    view.addSubview(imgView)
    //set constraints for your
}

// then use layoutSubViews(for views) / viewWillLayoutSubViews (for controller) and calculate the height

}

票数 0
EN

Stack Overflow用户

发布于 2021-08-13 06:33:34

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

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

代码语言:javascript
运行
AI代码解释
复制
override func viewDidLayoutSubviews() {
      super.viewDidLayoutSubviews()

      print(view1.frame.size)
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68770583

复制
相关文章
如何在onCreate中获取View的高度和宽度
在开发过程中经常需要获取到View的宽和高,可以通过View.getWidth()和View.getHeight()来得到宽高。然而新手们经常在onCreate方法中直接调用上面两个方法得到的值是0!
阳仔
2019/07/31
5.6K0
JavaScript 获取屏幕的高度和宽度
screen.availHeight:显示浏览器的屏幕的可用高度(这个可用高度不包括分配给半永久特性(如屏幕底部的任务栏)的垂直空间。)
aehyok
2018/09/11
7.4K0
JavaScript  获取屏幕的高度和宽度
JavaScript获取高度和宽度
屏幕分辨率为:screen.width screen.height 屏幕可用大小:screen.availWidth screen.availHeight 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽(包括边线的宽):document.body.offsetWidth 网页可见区域高(包括边线的宽):document.body.offsetHeight 网页正文全文宽:document.b
苦咖啡
2018/05/07
3.8K0
JavaScript、Jquery获取屏幕的宽度和高度
在日常的项目中经常需要获取屏幕的宽度或者高度,简单记录一下: Javascript方法获取: document.body.clientWidth //网页可见区域宽 document.body.clientHeight //网页可见区域高 document.body.offsetWidth //网页可见区域宽(包括边线的宽) document.body.offsetHeight //网页可见区域高(包括边线的高) document.body.scrollWidth //网页正文全文宽 document.b
德顺
2019/11/13
5.4K0
JavaScript 获取图片的宽度和高度的方法
因为加载图片是异步的,在图片的相关数据没有加载完之后,宽高都是默认为0,所以我们要给imgDom增加个onload方法。
李维亮
2021/07/08
2.8K0
OC中获取一串字符串的高度(宽度确定)或宽度(高度确定)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/52937475
用户1451823
2018/09/13
2.6K0
win10 uwp 获取窗口的坐标和宽度高度 获取可视范围获取当前窗口的坐标和宽度高度获取最前窗口的范围
本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/win10-uwp-%E8%8E%B7%E5%8F%96%E7%AA%97%E5%8F%A3%E7%9A%84%E5%9D%90%E6%A0%87%E5%92%8C%E5%AE%BD%E5%BA%A6%E9%AB%98%E5%BA%A6.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
林德熙
2019/03/13
3.9K0
iOS 中获取某个视图的截图
最近在做SDK的截图,想触发类似系统的截屏功能,找了一圈,总结一下靠谱的几种方式。 我写了个UIView 的category,将这几种方式封装和简化了一下。
Haley_Wong
2018/08/22
3K0
跨浏览器获取不同环境的window窗口宽度和高度
IE9+、Firefox、Safari、Opera和Chrome均为此提供了4个属性: innerWidth 、 innerHeight 、 outerWidth 和 outerHeight 。
德顺
2019/11/13
2.8K0
ie8和chrome获取上传图片的宽度和高度等尺寸
测试后可用 <html> <head>     <title>测试</title>     <meta charset="utf-8"/>     <link rel="styleshee
汤高
2018/03/28
1.8K0
WPF 获取本机所有字体拿到每个字符的宽度和高度
本文主要采用 GlyphTypeface 类尝试获取每个字符的宽度和高度的值,尽管这个方法和最终 WPF 布局使用的文本的宽度和高度是不相同的,但是依然可以作为参考
林德熙
2020/09/10
2.1K0
WPF 获取本机所有字体拿到每个字符的宽度和高度
iframe自适应高度和宽度[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
3.9K0
js 获取浏览器高度和宽度值(多浏览器)
IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 FireFox中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 Opera中: document.body.clientWidth ==> 可见区域宽度 document.body.clientHeight ==> 可见区域高度 document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) 没有定义W3C的标准,则 IE为: document.documentElement.clientWidth ==> 0 document.documentElement.clientHeight ==> 0 FireFox为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
似水的流年
2019/12/10
5.7K0
对nwpu数据集的宽度和高度进行修改
NWPU VHR-10目标检测数据集中的ground truth,统一为256x256有时候在使用的时候很不方便,因此需要将宽和高指定为真实的宽和高,python的源代码如下,
狼啸风云
2019/06/14
1.7K0
iOS开发中实现OC和Swift的混编
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/79993503
用户1451823
2018/09/13
2.7K0
iOS开发中实现OC和Swift的混编
js 获取浏览器高度和宽度值(多浏览器)
IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 FireFox中: document.body.clientWidth ==> BODY对象宽度 document
似水的流年
2018/01/18
10.6K0
js 获取浏览器高度和宽度值(多浏览器)
js 获取浏览器高度和宽度值(多浏览器)
IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 FireFox中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 Opera中: document.body.clientWidth ==> 可见区域宽度 document.body.clientHeight ==> 可见区域高度 document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) 没有定义W3C的标准,则 IE为: document.documentElement.clientWidth ==> 0 document.documentElement.clientHeight ==> 0 FireFox为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
似水的流年
2018/01/12
7.8K0
点击加载更多

相似问题

如何在iOS中获取屏幕的宽度和高度?

1823

如何在iOS中从图像视图中获取图像的宽度和高度

21

以编程方式添加视图时响应的宽度和高度

112

通过编程改变视图的高度和宽度会导致iOS中使用swift的意外行为

21

如何在ios中为集合视图单元格编程提供宽度和高度

38
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档