自定义Xib的View在带XIB的控制器上布局错乱的解决方法

不会讲话,直接进入主题:

问题重现:

1、我创建了个带xib的控制,蓝色是一个普通view,要在这个普通的view上加载自定义view


2、这是我的自定义view


3、这是我的自定义view的.m实例化方法

4、在控制器上创建这个自定义View


5、模拟器显示高度好像可以,但是宽度完全不对


6、查看三维度,完全崩溃了,宽高全不对


错误重现完毕,以上



经过各种反复的思考及验证,得出了答案,但这个答案必须对自动布局有一定了解才能明白:

问题答案:

在控制器中,这个蓝色view是自动布局写的,并非写死frame的,对于自定义View来说,蓝色View自己都不知道自己的具体尺寸,怎么保证我的宽高呢,自动布局与frame在某种角度上说是对立的,用自动布局,就不能用frame

,解决方法就是自定义的view,放弃frame的布局,也用自动布局autolayout、masonry、sdautolayou等原生及三方法工具,



最后的运行结果:




总结:

一、如果自定义xib的View,是直接加载self.view这个父视图上的话,用frame去调整宽高是没有问题的

二、如果自定义xib的view,是加载到self.view里面的某个使用自动布局的View上面的,这个自定义xib的view,也必须要用自动布局或三方布局工具去调宽高坐标(有点绕口)

以上

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,255评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,556评论 25 708
  • 霜白塘水已,住北处窗寒。 倚坐遂秋忆,阑风皓月还。
    昉之阅读 264评论 11 9
  • #不定期输出# #LCmoon# #2017/02/25# #第二篇# #工作方法# 我接下来说的的开会,特指需要...
    LCmoon阅读 351评论 0 0
  • 从小就有个愿望:有一份可以养活自己的收入,然后可以随心所欲地生活。比如看书、写字,和互相喜欢的人在一起。 为了这个...
    枫红云天阅读 1,126评论 0 1