[Swift] Use Autolayout programmatically without Storyboard
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很有趣, 一來很短(對方希望你三個小時內完成), 二來可以看到很多基本功。我覺得對方的重點是:
基本上重點就在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
這是前一陣子找工作時候一間公司給的code test. 雖然最後還是沒有成功, 但我覺得這個test很有趣, 一來很短(對方希望你三個小時內完成), 二來可以看到很多基本功。我覺得對方的重點是:
- 1.不在storyboard環境下使用Autolayout
- 2.Tableview cell的reuse, 特別是圖片的顯示
- 3.整個project的架構, 使用了哪些patterns
project架構 |
之後有人提醒說使用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: