2017-06-22 168 views
1

我在我的屏幕中有UITableView。它顯示部分標題和行與動態高度
當我從Xcode8.3移到Xcode-9 beta時,這個設置有兩個問題。在Xcode-9 beta中破解的Autolayout

1接頭視圖高度破碎
2行的動態高度破碎

我已建立我的表視圖爲:

enter image description here enter image description here

然後,我有自定義單元格

enter image description here
enter image description here
enter image description here

這裏是代碼:

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { 
    return //dynamically calculated height according to msg text 
} 
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 30 
} 

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let headerHeight:CGFloat = tableView.sectionHeaderHeight 
    let headerView = HeaderView(frame: CGRect(x: 0, y: 0, width: tableView.width, height: headerHeight), withHeaderLable: "Date/Day of msg") 
    return headerView 
} 

這完美的作品在Xcode8.3甚至含有消息的多條線路,但在Xcode9公測破爲: 當我與Swift3.2設置運行在Xcode9測試:

enter image description here

當我在Xcode9賭注Swift4設置運行答:

enter image description here

什麼是這種行爲的原因是什麼?

+0

你爲什麼使用測試版? –

+4

@elk_cloner這應該是問題,爲什麼使用測試版。這是一項採用即將到來的技術挑戰的舉措。如果這真的是Apple的缺陷,那麼對我們來說,面對這樣的挑戰並找到適當的解決方案 – Krunal

回答

3
tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = 30.0 

viewDidLoad添加這一點,並沒有必要的tableview委託方法estimatedHeightForRowAt的。

+0

難怪爲什麼它需要xcode9而不是xcode8.3! – D4ttatraya

+0

實際上,標題問題與自動佈局無關,它與'NSFetchedResultsController'有關; [這是關於這個問題](https://stackoverflow.com/q/44804683/5546312) – D4ttatraya