2015-10-02 66 views
0

我正在構建雜誌風格的應用程序,讓用戶可以使用關於歷史的信息。對於導航,我使用tableview和單元格中的圖像。我的問題是 - 他們看起來很好僅在iPhone 5,這樣的:UITableView - 在不同的設備上顯示不同的圖像大小

enter image description here

和iPhone 6它看起來拉伸,也不好,這樣

enter image description here

我想我需要基於設備的不同的單元尺寸和不同的圖像尺寸。我知道,如何使細胞達到動態高度,但我不知道如何在不同設備上顯示不同長寬比的圖像。我怎麼能做到這一點?

+0

您是否在單元格上使用自動佈局 – Lamar

+0

是的,我使用高度,寬度,寬高比定量和剪切圖像到頂部和底部以及左右兩邊 –

回答

0

您可能應該以編程方式計算單元格高度,並在圖像的四周使用0px間距約束。如果您將UIImage的模式設置爲「縮放至填充」並很好地計算高度,它將起作用。

你可以這樣計算大小:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
 
     return tableView.bounds.size.width * 0.25 //Or what you need 
 
    }

+0

如何計算高度?你提到的其他東西我已經試過了,而不是圖像,我得到了一些伸展混亂 –

+0

用代碼更新了答案。 – Gabriel

+0

有一些進展,但看起來不好https://s.mail.ru/54U1YhGEdxds/img-2015-10-02-19-52-37.png也嘗試方面適合 - https://s.mail。 ru/5BYSVfSQrfQV/img-2015-10-02-19-55-09.png圖像的尺寸要好得多,但整體單元格 –

0

你的細胞在iPhone 6不具備iphone 5的相同的縱橫比他們應該更高。 按照@gabriel的說法,將imageview邊距設置爲0,並根據它是否爲iPhone 5 o 6返回特定高度。

+0

如何計算不同設備的高度? –

+0

這樣的事情'重寫func tableView(tableView:UITableView,heightForRowAtIndexPath indexPath:NSIndexPath) - > CGFloat {iphone5}返回someHeight;否則返回someOtherHeight; }' – Lucho

相關問題