1.國際化
文章地址:iOS開發(fā)中的國際化
當時項目已經接近尾聲匀归,項目中使用的所有控件顯示的本地內容都是已經寫好的中文坑资。在項目即將完成的時候加國際化是很耗費時間、精力的(要去查找所有的中文穆端,并將其替換)袱贮。
首先需要創(chuàng)建一個strings文件
需要適配幾種語言就會有幾個strings文件(strings文件中是鍵值對的形式)
注意:如果在App內切換完語言后要發(fā)送通知,讓其他頁面進行語言的切換体啰。
2.cell上的跑秒
文章地址:iOS開發(fā)中Cell上的跑秒
當時是商品加了一個活動攒巍,每個商品下方有一個跑秒嗽仪。
最開始想的是服務端去做跑秒,客戶端只管每隔一秒去請求數(shù)據(jù)柒莉,后來發(fā)現(xiàn)不現(xiàn)實闻坚,最后的跑秒還是得在客戶端做。
一次請求接口得到列表中所有商品的剩余的時間后存儲下來兢孝,然后進行計時窿凤,計算過了多少秒,用存儲的時間減去過了的時間就是最新的剩余時間跨蟹,而且每過一秒就更新一下Cell上顯示的時間雳殊。這樣在滑動列表的時候,雖然每次傳給Cell的時間是同樣的喷市,但顯示的是不同的時間相种。
再次請求這個接口的時候,得到新的剩余時間品姓,將之前計算過了多少秒的時間清零,重新計算新的剩余時間箫措。
3.Cell高度的自適應
第一次遇到動態(tài)高度的Cell的時候確實感覺有點復雜腹备,需要計算好多內容,如頭像高度斤蔓、動態(tài)的文字高度植酥、多張圖片的高度、以及彼此之間的距離弦牡,要將這些所有的大小都拿到才能知道這個Cell到底多高友驮,越是復雜的Cell計算越復雜,而且稍不注意就會出錯驾锰,最后使用了Masonry的約束卸留,不用返回heightforrow這個方法,不用去計算這個Cell的高度椭豫,就能通過Masonry的約束將Cell的高度撐起來耻瑟。