2017-06-15 60 views
1

我嘗試製作一個充滿圖片的tableview。這是我想和我的約束:UITableview充滿了圖像:圖像之間的空間太多

  • 一個3:2的寬高比爲在cell.height圖片

圖像中cell.width =圖像用3:2乘法器

  • 圖片的寬度應採取所有的屏幕寬度

圖像中cell.centerX = Superview.centerX

0123在cell.width

圖像= Superview.width

表View.Center X = Superview.Center X

表View.width = Superview.width

  • 畫面之間的空間應爲8

Cell.Bottom =圖像在Cell.Bottom + 8

  • 其他方面的限制:

表view.top =頂部佈局guide.bottom

表view.bottom =紅色block.top

這就是我得到:

enter image description here

我有三張圖片,一張在屏幕上可見,另外兩張在滾動時可見。 我在屏幕底部也有一個紅色塊。桌面視圖位於紅色塊的後面。

我的問題是每張照片上都有空白。我想它來自內容視圖或單元格高度,與我的圖片高度不匹配,但我無法做到正確。

通過一些更改,我在圖片之間獲得了正確的空間,但「屏幕上」的寬高比不再受到尊重(=圖片寬度似乎超過了屏幕寬度)。如果我在Cell.height中添加cell.height = Image,會發生什麼情況。我還得到了aspect = 3:2,height = Cell.height中的圖像,Image in Cell.width = width和height = 400的衝突限制。

您是否看到有什麼問題?

謝謝

亞歷

回答

1

你設置你的tableView的rowHeight靜態?我認爲它應該是動態的,因爲在不同的屏幕上,單元高度會根據高寬比而不同。

將此代碼添加到您的viewDidLoad。這將有助於使你的tableView細胞高度動態:

self.tableView.rowHeight = UITableViewAutomaticDymension 
self.tableView.estimatedRowHeight = 60; 

而做出的tableView計算細胞高度,ImageView的頂部約束添加到上海華盈(小區)爲0

其實,如果你想要的細胞是不同屏幕上的靜態高度,只需刪除您的aspectRatio約束,添加imageView heightConstraint等於單元格。它也會起作用。

+0

我不想要一個靜態高度,我想要一個3:2的寬高比。我沒有添加任何關於rowHeight的代碼,所以我想這是「靜態的」。在故事板中,我的表格視圖的行高屬性爲400,而我想尊重寬高比並採用所有屏幕寬度,而不是指定高度。我已經在viewDidLoad中添加了代碼並添加了約束圖像在Cell.top = cell.top中,圖像之間的空間是正確的,但寬高比不受尊重(高度非常小),並且我得到了衝突約束。 – Alex9494

+0

好的!現在問題在你的限制。你什麼意思是說cell.top = cell.top。其實,你需要cell.top = cell.imageView.top。就像你的imageView應該堅持在最頂端的超級視圖 – iamirzhan

+0

如果它不起作用。嘗試刪除單元格中的所有約束,並僅添加ImageView(3:2)和imageView邊緣的超級視圖(0到頂部,左和右,8到底部)的AspectRatio – iamirzhan