2013-08-29 328 views
0

我遇到問題,要將圖像正確縮放至我的UITableCell。我有一個大的圖像副本,並希望通過可變高度單元進行縮放。它是一個正方形的圖像,是x乘x的圖像。按比例調整方形圖像的大小

UIImageView *pw = [[UIImageView alloc] initWithImage:img]; 

[pw setImage:img]; 
pw.contentMode = UIViewContentModeScaleAspectFill; 
pw.frame = CGRectMake(cell.frame.size.width - img.size.width, cell.frame.origin.y, 
          ?, cell.frame.size.height); 

[cell.contentView addSubview:pw]; 

的問題是我不知道要放什麼東西價值爲?參數(圖像寬度),因爲它可以擴展取決於電池的高度的英寸

回答

2

如果圖像的寬度取決於電池的高度,你可以把它正比於它。例如,

  • 如果寬度與高度相同,則將「?」等於cell.frame.size.height
  • 如果寬度是高度的2倍,則使「?」等於cell.frame.size.height * 2
  • 如果寬度是高度的一半,請將「?」等於cell.frame.size.height/2
  • 等...

希望這有助於!

+0

Duh ....我不敢相信我沒有想到...只是將它設置爲等於'cell.frame.size.height'!謝謝 –

+0

奇怪的是,我首先發布瞭解決方案。 – Mundi

+0

您應該只在準備好之後獲取單元格的高度。這意味着在willShowTableViewCell方法中的cellRowAtIndexPath之後。如果您的表格單元格高度可變,則尤其如此。 – futureelite7

-1

如果使用自動佈局在圖像視圖上使用高度和寬度約束很容易。 其中一個等於另一個。 調整另一個的常量。 設置needsLayout。也許動畫。

1

如果它應該是一個正方形,把同樣在x方向爲Y方向:

CGRectMake(cell.frame.size.width - img.size.width, 
     cell.frame.origin.y, 
     cell.frame.size.height, 
     cell.frame.size.height);