iOS高级开发程序猿阵线联盟-汇总各类技术干货程序员

iOS - Xib/Storyboard Helper

2018-02-06  本文已影响155人  OrangeAL

前言


对于 UI 界面的编写工作,是否应该用 xib/storyboard 完成,一直是iOS开发中的争议,然而本文并参与讨论这个话题。(手动笑脸)
有兴趣的朋友可以参考唐巧的这篇文章
本文只是为喜欢使用或是想去使用 xib/storyboard 的朋友,提供一个强大的工具。在使用 xib/storyboard的时候,更加方便灵活,同时也为 xib/storyboard在添加约束,适配屏幕上做了一些改进,使之使用起来更加简单有效

更新日志


2018-06-18 ~ cocoapods version 1.1.8
2018-06-11 ~ cocoapods version 1.1.7

所有属性见文末Property

IBProperty


下图为IBProperty通过Storyboard搭建的效果图

图1.png 图2.png

IBProperty 通过IB_DESIGNABLE 和 IBInspectable 以类目的形式为xib/storyboard 添加了一些简单有效的新属性,如阴影、圆角、毛玻璃等(具体见本文最后)
在xib/storyboard上要做到完美适配,需要添加很多较为复杂的约束,如果需要让约束的常量适配的话,就需要通过代码去设置了;字体的适配也是如此,通过IBProperty只需要在xib/storyboard设置一个属性就OK了。这些适配不仅体现在约束和字体上,IBProperty还提供了一系列适配方式,让xib/storyboard 在屏幕适配上也更加简单。

安装


(oc、swift 无区别)

使用


IBProperty只需要集成到项目中就可以为xib/storyboard服务了

然后你就可以在xib/storyboard 选中对象赋值了(具体属性及含义参照本文最后)
比如你要适配一个约束(图3),或是为UITextView加上placeholder(图4)

图3.png 图4.png

IBProperty不需要引用任何头文件,除非确实需要在代码中使用(事实上,并不推荐这么做)
因为IBProperty旨在服务于xib/storyboard,其中大部分属性都只是计算型属性,少部分属性无法间接获取的,通过getter 也将无法获取它,因为并没有为它真正开辟内存。此外,在代码中使用IBProperty,对同一个属性做多次赋值,可能会多次适配,导致一些奇怪的bug。总之,如果确实需要在代码中使用IBProperty,一定要对源码比较熟悉才行

Property


图5.png

后续


IBProperty处于不间断更新当中,读者有较好的建议或意见,都可以在GitHub或是本文评论区提出issue,每次更新都会在GitHub和本文上记录更新日志。
最后是GitHub传送门,喜欢的话给个小星星喔

上一篇 下一篇

猜你喜欢

热点阅读