2017-04-20 72 views
0

我有一個tableview中的靜態單元格。在他們中,我有一個圖像視圖,剩下的尺寸和一個標籤右側。我也使用了自動佈局。我的問題是:圖像大小相同的UITableview單元上的所有設備

所有設備的圖像大小看起來都一樣。這意味着如果iphone 5s的圖像大小爲50 X 50,那麼對於iPhone 6plus,它應該顯示爲100 X 100.但它只顯示50 X 50.

+0

如果正確完成50px圖像將在所有iphones中顯示爲50 px。質量將會提高以符合iPhone的質量,但圖像尺寸仍應該相同(假設我理解正確) – logixologist

+0

一種選擇是隻在您的手機中設置拖尾和前端以及頂部和底部邊緣限制。 –

+0

您是否在資產文件夾中添加圖片?或者您是否對imageview設置了高度和寬度約束? – KKRocks

回答

1

您在該單元格內使用了哪些約束?如果重新使用高度約束爲50,則圖像始終爲50.

您可能希望圖像爲每個設備的特定尺寸(即相應地爲50,70和100)。一種解決這個問題的方法是讓圖像與單元格的頂部,底部和左側保持一定的距離,並給它一個特定的高寬比。

然後使用tableView委託方法來確定您的單元格的大小。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 

//if iphone 5 return x (e.g 50) 
//if iphone 6 plus return y (e.g 100) 

} 

這樣你重新改變你的細胞大小(即時猜測你需要更小,如果你的形象是較小的,更大,如果你的形象是大)和圖像自動調整大小,自動使用上面

提到的限制
+0

這是最接近的答案。使用自動佈局設置頂部,底部,尾部和前導約束,然後^ tableView.heightForRow委託方法將允許您的imageView根據運行應用程序的設備來調整大小,但@Khalid Afridi的答案也有很好的信息爲什麼你的imageView沒有調整大小! –

1

如果您將imageView尺寸設置爲50x50,則會在iPhone手機中顯示50x50。你正在考慮對於視網膜屏幕有1x,2x和3x的圖像。它不會改變圖像視圖的大小,它只會看起來不錯。欲瞭解更多信息,你可以閱讀這個答案what is pixel and points in iPhone

但如果你想改變更大的設備,如iPhone加圖像視圖的大小,那麼你必須使用大小類,您可以配置,刪除或添加基於屏幕的約束大小或方向

相關問題