1.国际化
文章地址:iOS开发中的国际化
当时项目已经接近尾声,项目中使用的所有控件显示的本地内容都是已经写好的中文。在项目即将完成的时候加国际化是很耗费时间、精力的(要去查找所有的中文,并将其替换)。
首先需要创建一个strings文件
需要适配几种语言就会有几个strings文件(strings文件中是键值对的形式)
注意:如果在App内切换完语言后要发送通知,让其他页面进行语言的切换。
2.cell上的跑秒
文章地址:iOS开发中Cell上的跑秒
当时是商品加了一个活动,每个商品下方有一个跑秒。
最开始想的是服务端去做跑秒,客户端只管每隔一秒去请求数据,后来发现不现实,最后的跑秒还是得在客户端做。
一次请求接口得到列表中所有商品的剩余的时间后存储下来,然后进行计时,计算过了多少秒,用存储的时间减去过了的时间就是最新的剩余时间,而且每过一秒就更新一下Cell上显示的时间。这样在滑动列表的时候,虽然每次传给Cell的时间是同样的,但显示的是不同的时间。
再次请求这个接口的时候,得到新的剩余时间,将之前计算过了多少秒的时间清零,重新计算新的剩余时间。
3.Cell高度的自适应
第一次遇到动态高度的Cell的时候确实感觉有点复杂,需要计算好多内容,如头像高度、动态的文字高度、多张图片的高度、以及彼此之间的距离,要将这些所有的大小都拿到才能知道这个Cell到底多高,越是复杂的Cell计算越复杂,而且稍不注意就会出错,最后使用了Masonry的约束,不用返回heightforrow这个方法,不用去计算这个Cell的高度,就能通过Masonry的约束将Cell的高度撑起来。