野鸟装备IOS版开发笔记(1.0版本)
最后更新于:2022-04-01 11:32:39
**欢迎关注老码农的微信公共账号,与CSDN博客同步** ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-30_57246173b70ac.jpg)
[野鸟装备](http://www.wiyeniao.com/)终于要上线了,总结一下遇到的坑,供大家品尝。
#### 调用弱引用的block属性崩溃
遇到的第一个技术性崩溃,是因为调用弱引用的block属性造成的。
通常,在block回调中,如果weakSelf已经被释放,那么调用weakSelf的方法(如:[weakSelf method])会没有任何效果。但如果是调用weakSelf的block(如:weakSelf.block()),则会崩溃。
#### UIWebView进度条处理
UIWebView的进度条无法精确计算,使用了NJKWebViewProgress框架,但这个框架效果并不太好,要么为0,要么卡在10%左右不动,然后突然一下到100%。二期会改成微信那样的展示方式,无论如何一直在动,告诉用户我在努力,而这也是进度条存在的唯一目的,因为用户不会关心到底加载了百分之几。
#### UITableView的滚动条
习惯了Android上面列表的滚动条在Cell之外的风格,看IOS上面滚动条盖在列表Cell上面真心很丑,于是试了N种方式,终于通过调整滚动条的scrollIndicatorInsets 为: UIEdgeInsetsMake(0, -5,0, -5);把滚动条调整到了Cell显示区域的右侧。
#### 引入思源字体
IOS字体实在是不怎么漂亮,借鉴大家的做法,使用了思源字体,不过压缩后11M多文件大小,真让人心疼,不过效果真的很棒。还有一个缺憾就是思源字体对decent的处理显示有问题,对于单行的Label,或者多行Label的最后一行,g的下半部分会显示不出来,这个需要自己解决一下了。我是用TTTAttributedLabel绘制时底部添加了几个点。
#### html语法支持
我们的文章详情中使用了部分html语法,我把NSAttributedString和TTTAttributedLabel进行了裁剪改造,糅合成一个控件来做支持。支持像带下划线样式的链接、文章内部分字体颜色设置、价格设置strike中划线样式等,直接把一个使用html语法的字符串扔给TTTAttributedLabel就可以了,比直接使用TTTAttributedLabel要方便很多。
#### UIScrollView的使用
我整个项目99%都是使用xib来完成的,在布局“鸟巢”时,最下面的“点击登录”在部分机器上会被Tab挡住,所以给整个页面套了一层UIScrollView,但使用xib布局时,因为UIScrollView要依赖基内容frame才能确定其属性,而xib布局又需要先放置UIScrollView,所以出现了先有鸡还是先有蛋的问题。最后百度了一把,通过给UIScrollView加了一层虚拟的ContainerView来解决此问题。
这带来了一个Bug,就是处理在“鸟巢”页面初始可见区域之下的“点击登录”的下半部分无法接收到点击事件。经过排查,发现ContainerView的userIntractEnable没有设置为YES。
补充于2015.11.13
在做野鸟装备 2.0的时候发现,ContainerView要宽和高要先在xib中设置为固定值,再在代码中动态计算调整才可以,否则还是会出现ScrollView区域之外的部分无法接收事件的问题。