1

我有一個自定義tableViewCell,我試圖設置約束,以便我可以使用tableView.rowHeight = UITableViewAutomaticDimension。設置約束來驅動UITableViewAutomaticDimension的UITableViewCell高度

爲了簡單起見,假設我有一個uiTableViewCell,其內容視圖僅包含UIImageView。 UIImageView受限於保持一定的寬高比,並固定在單元格內容視圖的左側,右側和頂部。我希望我的內容視圖的高度由UIImage視圖的高度驅動。

我一直在試圖通過將內容視圖底部固定到UIIMage視圖的底部來解決這個問題,但是我在運行時'無法滿足所有約束'錯誤。什麼是正確的方法來設置?

+0

您定位的iOS版本是什麼? iOS 8+還是以前的版本? – 2015-03-08 08:31:26

+0

ios 8+是的。任何支持UITableViewAutomaticDimension的操作系統真的。 – nwales 2015-03-09 13:40:48

+0

請確認您在iOS 8中嘗試了UITableViewAutomaticDimension,但它不起作用?它不會在iOS 7中運行,但它應該在iOS8 +中運行。 – 2015-03-10 18:50:13

回答

0

我知道這有點晚了,但我只是看到了這一點,並希望它能幫助有類似問題的人。

它是因爲您將約束應用於左右邊緣,並且設置寬高比約束。完成此操作後,圖像視圖的高度將根據寬度進行設置,因爲圖像視圖會固定在兩側,因此其餘寬度不能更改,同時寬高比約束將發揮作用。

要解決此問題,可以做的是,將約束移除到左側或右側(僅保留一個),將圖像視圖固定到頂部和底部,並設置縱橫比約束。這將使寬度調整爲高度,並且內容視圖的高度得到正確更新。

如果此時您收到警告「圖像視圖模糊的x位置」,請設置寬度約束並將其優先級設置爲小於1000的值(這是我假設的所有其他約束的優先級)。