iOSiOS开发

xib完美适配所有机型,解决你多年的心病!

2018-11-02  本文已影响304人  yeshenlong520

从接触ios开始,我就是忠实的可视化开发的搬运工——俗称UI拖拽师!
本编主要送给那些年热爱xib,喜欢效率的ios程序猿们。它可能解决你多年的心病!一直挥散不去的禁锢于代码的约束,一群技术大牛此时应该会鄙视,但我乐此不疲。
正题开始:此篇文章的主要内容是利用运行时和xib的机制,用少许的代码适配所有机型。简单粗暴而不失优雅!用了我这套方法你只要在375的xib里面随心所欲的约束,然后就可以适配刘海屏,plus屏,se屏等等。

注意宏的定义是这个方法的关键,通过当前屏幕的尺寸和375的尺寸做对比。


image.png

做完这个功夫后,就差最后一步达到效果就是去开启这个效果!


image.png image.png

选中一个纵向的约束 然后对应的去打开,由于我的命名太长被...代替了,他的顺序是和h文件命名的顺序一样,第一个是W横向的,第二个是H纵向的。所以我们打开纵向的。IBDesignable的关键词就起了作用,属性添加的是Bool值所有选的时候会出现ON和OFF。
通过这个操作,就可以随意操作xib了。然后布局完成后对应把所有的纵向和横向的依次设置一下开关,他就会随着屏幕的尺寸而放大和缩小。

建立一个uilabel的类别,h文件不用动。m文件如图所示。
通过load方法加载的时候,讲initWithCoder:方法的实现和自定义的adapterInitWithCoder:的实现交换。这样xib加载到initWithCoder:的时候就会实现自定义的那个方法。取出当前的字体大小,plus屏幕字体就+1(举例说明可以微调加0.5),se屏幕字体就-2。是不是很简单。那你说怎么调用呢,其实你既然创建了这个类别就会走这个方法,在xib中已经实现了。是不是很神奇!至于其他空间只要有字体的,都可以用这种方法去实现,这就不一一举例了。我平时直接拉进项目如图所示


image.png

有了以上两个方法,就实现了约束的比例缩放以及字体大小的缩放。xib在375的标准下狂奔吧!ios的开发者们,run!有什么好的建议可以留言哦,欢迎ios的朋友们相互学习。需要Demo记得留下邮箱,我给你发Demo。

上一篇下一篇

猜你喜欢

热点阅读