美高梅游戏平台网站关于如何写UI及屏幕适配的一

来源:http://www.sh-fengwen.com 作者:美高梅游戏平台网站 人气:86 发布时间:2019-09-10
摘要:接上篇:关于如何写UI及屏幕适配的一些技巧 因为公司开启了一个新的iOS项目, 所以近期比较忙,没有更新博客,今天打算总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯

接上篇:关于如何写UI及屏幕适配的一些技巧

因为公司开启了一个新的iOS项目, 所以近期比较忙, 没有更新博客,今天打算总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯代码,会对提升效率及代码易于维护等方面有明显帮助,这里提到的没有使用任何Xib, 如果不是在外包公司,也推荐大家多使用甚至完全使用纯代码布局UI,优缺点下面会说明,本文布局使用masonry。货不太干,只是工作中的一点点小技巧与基础知识,大家可以来分享更多的技巧。

下篇地址:

上篇发出之后收集了一些反馈, 总结起来以下几点:

提纲:1. 关于xib/storyboard 与 纯代码的对比 2. 一条规范(又提了一点关于命名的)3. UI工厂类 与 代码块4. 懒加载, View使用strong还是weak5. 复杂界面要会分区,要会障眼法6. masonry均布View,及其布局时约束依赖关系7. 关于屏幕适配的一点技巧
  1. 没有demo,代码没有全部粘上来。我认为这篇的内容不需要,不能我写个弱引用的懒加载怎么写,还一定要把声明weak属性的代码放上来吧。
  2. 关于xib/strotyboard和纯代码我是两种用过,实际工作中也基本都达到了熟练的程度,现在使用纯代码也不是公司要求,自己觉得更好,其他的就不说了,这就相当于两条路都行的通,任意一条走成老司机了另一条也没问题,但是新人工作中最好纯代码为主。
  3. 关于懒加载是否一定要理解到位想怎么搞怎么搞,萝卜青菜各有所爱。
1. 关于xib/storyboard 与 纯代码的对比

a. xib快,纯代码慢,但是在纯代码熟练的情况下, 并不会慢很多b. xib不易于修改,怎么修改,就是今天让一个View上的元素这么排布,明天就要换种排布方式,后天又要加些东西。。。c. xib不灵活,什么叫灵活,一个View上有10个元素, 其中5个都是不一定出现的,并且它们不是集中的布局在哪个位置, 乱七八糟的,多一个少一个布局还都有点影响,这就知道灵活的重要性了d. xib不利于屏幕适配,怎么适配,5s上一个View距左10像素,产品说6p上就要距左20才协调,xib上拖线布局怎么搞,约束拖出来改变它吗,复杂View有10个需要这样处理的地方呢。。。e. xib写多了纯代码手生,当然纯代码写多了,拖线也有点不熟练,这个不作为纯代码更好的原因。。。f. 但是!面试的时候如果你说我xib用的多,纯代码布局有点不熟练, 不好意思, 拜拜,你说我都是纯代码布局的, xib会,不熟,大多公司听到以前都是纯代码,那没问题,因为他们公司也不用xib。。。

2. 一条规范(又提了一点关于命名的)

“ .h 和 .m 的类扩展里面不要随便加东西,尤其 .h 里的东西一定要是必须放在这里,放在别处不行,实在有不太重要还必须放在这的,打好注释 ”

这个东西无数次在项目中见到过随意在这加东西的做法, 刚写完当时还好, 一个月以后再看, 瞬间懵逼。。。这是什么鬼。。。当时为啥要写这个量。。。这怎么还有个没用过的量。。。这个东西要不要传, 为啥A类用的时候穿了, B类就不传了。。。

再提一下另外一个规范, “名字不要随便起,弄个坑爹名字,自己隔天都不知道啥意思,是跟公司结了仇了还是怕泄露天机”

美高梅游戏平台网站 1不算特别不规范的命名

为什么说这些命名不是特别不规范, 因为这里面虽然有些vBack啦, lbl啦, tbl啦, 不是那么容易理解, 但是好歹是lbl,都用lbl了,不过为啥非得把Label放前面,官方命名的时候比如btn.titleLabel,Label也是放在后面的啊, 也没缩写成什么lbl,我们就简简单单的叫nickNameLabel不行吗。。。

说到命名就再多说一点, 如果一个复杂View内部布局的时候需要分割成几部分,在能想出名字的情况下最好不要按位置命名,比如topView,midView之类,明天产品说把位置调一下,最下面的部分比较重要提到最上面,这怎么办, 尽量想一想这部分大概负责什么,要表达个什么意思

提纲:上篇说到第4条1. 关于xib/storyboard 与 纯代码的对比 2. 一条规范(又提了一点关于命名的)3. UI工厂类 与 代码块4. 懒加载, View使用strong还是weak5. 复杂界面要会分区,要会障眼法6. masonry均布View,及其布局时约束依赖关系7. 关于屏幕适配的一点技巧8. 循环引用(上篇文章有人对循环引用不理解,虽然是基础,有人不理解还是说一下吧)
3. UI工厂类 与 代码块

UI工厂类: 其实代码很简单,就是把对Label, Button等控件的属性赋值封装一下, 做到一行代码就能创建一个VIew, 如下图, 虽然这一句代码有点长, 但是习惯之后写个View是真心快

美高梅游戏平台网站 2UI工厂类.h美高梅游戏平台网站 3UI工厂类.m

代码块: 代码块就是下图的东西, 应该没人不知道,不会添加隔壁百度

美高梅游戏平台网站 4代码块

这个东西不光是UI布局用, 很多位置都比较方便, 我常用的有这样几个

美高梅游戏平台网站 5懒加载美高梅游戏平台网站 6masonry定义过的一部分美高梅游戏平台网站 7masonry填空模式

尤其是纯代码masonry布局, 这样的代码块会让你布局的速度直逼甚至超越拖线, 只需要打出make就会出现已经定义好的各种约束, 比如要布局高度, 打出makeh, 回车, 就直接进入填空模式,tab切换填空即可

本文由美高梅游戏平台网站发布于美高梅游戏平台网站,转载请注明出处:美高梅游戏平台网站关于如何写UI及屏幕适配的一

关键词:

上一篇:Instruments质量优化-Core Animation

下一篇:没有了

最火资讯