[英]Resize ImageView (Image filling its bounds) while retaining UIImage aspect ratio
首先,我們需要獲取屏幕的寬度:
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
接下來,我們獲取圖像並使用該圖像創建圖像視圖。 在這里,我假設您對圖像視圖的y起點有一個y
(圖像視圖的左上角的y坐標),並且對圖像視圖的高度(即圖像的最大高度)也有一個height
。 y
之前的0表示圖像視圖一直到屏幕的左邊緣:
let image: UIImage = UIImage(named: "yourImageName")!
let imageView = UIImageView(image: image)
imageView.frame = CGRectMake(0,y,screenWidth,height)
接下來,我們需要確保在保持縱橫比不變的情況下適當調整圖像。 我們需要根據縱向或橫向圖像使用不同的contentMode
:
if image.size.height > image.size.width {
imageView.contentMode = .ScaleAspectFill // Portrait
} else {
imageView.contentMode = .ScaleAspectFit // Landscape
}
最后一步是添加視圖:
view.addSubview(imageView)
注:雖然這不看是你的應用程序的情況下,我發現一個錯誤,使圖像稍微移動,即如果height
你的imageView
小於screenWidth
。
在全:
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
let image: UIImage = UIImage(named: "yourImageName")!
let imageView = UIImageView(image: image)
imageView.frame = CGRectMake(0,y,screenWidth,height)
if image.size.height > image.size.width {
imageView.contentMode = .ScaleAspectFill // Portrait
} else {
imageView.contentMode = .ScaleAspectFit // Landscape
}
view.addSubview(imageView)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.