[Swift] Use Autolayout programmatically without Storyboard

November 03, 2017 0 Comments

This is the code test I got from one company's interview. I failed this interview but I think this code test is very fun challenges. Most of time I use storyboard to setup with autolayout, but in the challenge I can't use storyboard. So I need to write it in code. Second, I use uitableview to display data, and it is important to think how to reuse tableview cell, in this project I use cache to save/show photo.

這是前一陣子找工作時候一間公司給的code test. 雖然最後還是沒有成功, 但我覺得這個test很有趣, 一來很短(對方希望你三個小時內完成), 二來可以看到很多基本功。我覺得對方的重點是:
  1. 1.不在storyboard環境下使用Autolayout
  2. 2.Tableview cell的reuse, 特別是圖片的顯示
  3. 3.整個project的架構, 使用了哪些patterns
project架構
基本上重點就在custom cell部分,我把autolayout都寫在這邊
之後有人提醒說使用anthor會比較簡潔,所以我把label和imageview之間的constraint改成用anchor,然後把定義兩個controller和cell之間的"horizontalCons"移到最上面,原來的constrainLeft這個定義就可以拿掉了。  另外UITableView的設定, 在viewDidLoad加入這兩行 避免tableview擋到statusbar:

 self.tableView.contentInset.top = 20
 self.tableView.scrollIndicatorInsets.top = 20

 從URL讀取Image的時候使用loadImageUsingCache 這個extension, 判斷如果有下載過的圖片就先cache起來。 很簡單吧!我覺得這是個很有意思的小作業。
Download Project code: Here

0 comments: