第一篇:有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?
1.文字高度计算时 0.1 高度误差问题.
cell中经常需要使用 textRectForBounds: limitedToNumberOfLines:
来计算某一个文字的显示高度.这里,其实有一个很大的坑的,如果你没遇到只能说明你很幸运.由于浮点数四舍五入机制的存在,所以偶现UILabel最后一行无法显示的情况.原因也很诡异: 在你计算时,部分值会存在稍许的不超过0.01的误差,大多数情况下,这个误差值,可以安全忽略,但是确实存在那0.01误差刚好是绝对换行与不换行的分界值,因为0.01的误差,可能计算出来的高度就不足以显示最后几个文字.为了安全起见,如果需要计算文本高度,我都是加上一个额外的0.1来保证最后一行肯定可以显示.
2.手动调用 tableView:cellForRowAtIndexPath: 获取cell,引起的卡顿问题.
这个可能也是一些有经验的开发者也会混淆的问题: 不要在自己的代码中调用 tableView:cellForRowAtIndexPath:
方法来获取某一个位置的 cell,来进行关于这个cell的某些计算,因为你手动调用这个方法产生的cell不会参与cell的复用! 各种缘由,不过多解释,总之结论就是,只要系统自己调用 tableView:cellForRowAtIndexPath:
方法产生的 cell才会参与cell的复用.关于这个话题,比较易犯的错误是,竟然有开发者在
tableView:heightForRowAtIndexPath:
中调用 tableView:cellForRowAtIndexPath:
来获取cell,然后计算cell高度.然后你会发现,凡是稍微涉及到图片显示的界面,你的显示是对的,但是滚动非常卡顿,因为你在自己浑然不觉的情况下创建了N个Cell,而且这些Cell绝对不会参与复用.
第二篇:程序员如何写一本书?
连接:http://icodeit.org/2015/08/how-to-write-a-book/
知识的诅咒
“知识的诅咒”是指人们在获得了某种知识之后,就无法想象没有这种知识的情况了。这种现象随处可见,比如一个你到了一个从未去过的陌生城市,遇到以为当地人,然后向他问路。当地人觉得已经说的很清楚了,但是你还是不知道该怎么走。另一个例子是:假设你不认识泰文,然后你打开任何一本泰文写的小说,你只能依稀感觉到这是一种文字,除此之外你并不能从中获取任何的信息。但是当你学习了一段时间泰文之后,再来看这本小说,之前的那种感受就再也没有了。
第三篇:Swift 编程思想,第一部分:拯救小马
这篇文章很屌呀,去看吧!