再iOS提供了一項功能叫做selfSize Classes,multi device UI Design變得簡單起來了
不像以往要做一堆 x/y position calculate,真心覺得這是佛心來著
但如果你的開發版本在iOS 8以下你會發現 TableViewCell沒有selfSize作用?!
是的,沒錯! 這是個Apple已承認的Bug, 所以...恩 iOS 8以下cell還是默默地算吧...
但在iOS 8 之後,你會發現到只要相Constraint設好,Cell也會乖乖的排版唷!
(所以iOS 8 以下的使用率趕快降低吧!!!!!!!)
這是篇國外大德寫的文章:selfSize Classes(TableView Cell)
大致上看完應該就會在TableViewCell中使用selfSize了,其中幾個重點:
1. code :
tableView.estimatedRowHeight = 44;
tableView.rowHeight = UITableViewAutomaticDimension;
2. set estimatedRowHeight before rowHeight
3. don't call heightForRowAtIndexPath delegate. it'll let selfSize lose effect.
如果你的selfSize Classes沒有成功的話UI應該會是以下幾種情況:
1. cell height = 44 (default cell height)
2. cell height is not currect.
第一種是code沒寫對,要注意一下,可能以上步驟哪裡漏了
第二種的話其實有可能是estimatedRowHeight惹的禍!
像我是開始寫 estimatedRowHeight = 150;
然後我就發現UI出來整個跑掉的感覺,怪怪Der~
後來我就發現了... estimatedRowHeight 隨便設定會讓他整個跑型
因此我就設成預設值:
estimatedRowHeight = 44;
然後TableViewCell就乖乖的不會亂跑版了,其實我也不知道這裡有什麼...問題?
以上,小小心得.
沒有留言:
張貼留言