美文网首页iOSiOS DeveloperIOS
关于autoresizingMask的莫名错误 &&am

关于autoresizingMask的莫名错误 &&am

作者: 马戏团小丑 | 来源:发表于2016-05-23 22:29 被阅读179次

本文说一个莫名其妙的错误,控制台输出如下:


由图片红色划线看出:子控件的高度=父控件的高度-某个数字,而项目中子控件TopicVoiceView是由xib显示的,但是代码里面又没有设置他关于父控件高度的某些关系,所以根据经验可猜测跟autoresizingMask(尺寸自动调整)有关系
解决办法如下:
可在TopicVoiceView写上如下代码取消autoresizingMask



viewDidLoad和viewDidLayoutSubviews

1.如果控制器的view是通过xib创建的,那么在viewDidLoad方法中,控制器view的大小就是xib中设置的大小
2.为了避免【在viewDidLoad方法中拿到不准确的控制器view大小】,可以这么解决
1> 在viewDidLoad方法中初始化添加子控件,在viewDidLayoutSubviews方法中设置子控件的frame
2>直接viewDidLoad方法中为所添加的view设置属性

autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

所以不要在viewDidLoad中,因为在该方法中不会执行约束,在viewDidLoad中控件的尺寸都不是最终尺寸
在 viewDidLayoutSubviews,该方法表示执行约束完成,是专门用来布局子控件(当控制器的view尺寸发生改变的时候会调用)
LayoutSubviews 是当view里面的子控件尺寸发生改变的时候会调用

相关文章

  • 关于autoresizingMask的莫名错误 &&am

    本文说一个莫名其妙的错误,控制台输出如下: 由图片红色划线看出:子控件的高度=父控件的高度-某个数字,而项目中子控...

  • 代码实现自动布局

    关于 autoresizingMask 方法 在简单的界面适配时使用 autoresizingMask 及其方...

  • amp配线架打线方法

    amp配线架打线方法比较简单,amp配线架打线方法正确是配线架能否正常工作的重要基础。广州市辉澎提供各种优质的am...

  • 网页设计 - 收藏集 - 掘金

    免费且又精致的 HTML/CSS 站点模板 - 前端 - 掘金&l...

  • (a== 1 && a ==2 &&am

    前言 最近在网上看到一个面试题:(a== 1 && a ==2 && a==3)有可能返回true吗?答案是可以的...

  • push && unshift &&am

    push : 在数组最后加一个元素 unshift : 在数组最前面加入一个元素 pop :在数组最后删除一个元素...

  • (a== 1 && a ==2 &&am

    前言 最近在网上看到一个面试题:(a== 1 && a ==2 && a==3)有可能返回true吗?答案是可以的...

  • 关于UIView的autoresizingMask属性

    iOS中确实有许多自己不知道但却比较实用的API ,在此做个小结 UIViewAutoresizingNone就...

  • 关于UIView的autoresizingMask属性

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自...

  • 关于UIView的autoresizingMask属性

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值,属性的意思就是自动调整子...

网友评论

    本文标题:关于autoresizingMask的莫名错误 &&am

    本文链接:https://www.haomeiwen.com/subject/pdzarttx.html