簡體   English   中英

重新縮放圖像,使寬度為屏幕尺寸的一半

[英]Rescale image so width is half the size of screen

我是新手,我正在嘗試在自定義UITableCell中顯示多個圖像視圖。

理想情況下,我希望縮放每個圖像,使其寬度占屏幕尺寸的一半(同時保留原始的寬高比)。

這個想法是,每個UITableCell在UILabel中將包含3張圖像和一些其他信息的拼貼畫-最高的圖像將位於其自己的列中,較小的兩個圖像堆疊在最高的圖像旁邊。 以下是幫助您說明我要實現的屏幕截圖:

在此處輸入圖片說明

但是,我對此有些麻煩。 當前,使用Alamofire .GET請求檢索圖像后,我將調用執行以下操作的函數:

let aspectRatio = image.size.width / image.size.height
let newHeight = desiredWidth / aspectRatio

UIGraphicsBeginImageContext(CGSizeMake(desiredWidth, newHeight))
image.drawInRect(CGRectMake(0, 0, desiredWidth, newHeight))

let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

return scaledImage

返回圖像后,在將其添加到第一個圖像視圖之前,我將更新圖像視圖的框架,如下所示:

      cell.img_1.frame =  CGRect(x: 0, y: 0, width: new_image.size.width, height: new_image.size.height)

      cell.img_1.image = new_image

但是,當我運行代碼時,圖像的寬度不是屏幕的一半-而是-它們看起來與我將它們不縮放而放入圖像視圖時的樣子完全相同(ImageView設置為Aspect Fit Mode )。

當我打印出新縮放的圖像的寬度和高度時,這些值與我想要的一致。

我確實注意到縮放前和縮放后的寬高比略微降低了約.01。 -因此,將圖片視圖設置為Aspect Fit,這可以解釋我所看到的嗎?

我也嘗試過將模式設置為“縱橫比填充”,但是遇到了某些圖像的寬度無法正確縮小並占據屏幕一半以上的情況。

對於這個長期待解決的問題,我們深表歉意,對此我們將提供一些幫助,如有需要,我將提供更多信息。 謝謝!

ImageView設置為Aspect Fit Mode)。

但您有問題-或其中之一。 如果您不希望圖像視圖調整圖像大小,請不要使用任何 “長寬比”內容模式,也不要使用任何“適合”或“填充”內容模式。 使用,例如,中心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM