如何在Swift中设置图像的宽度和高度

一般来说是SwiftiOS编程的新手。 我无法弄清楚如何设置图像的宽度和高度。
例如,

  let backgroundImage = UIImage(named: "background.png") 

谢谢

我的建议是。

您应该设置UIImageView大小,然后将此图像放在其上,而不是设置图像大小,以便根据您的要求显示图像大小。

这样的,

 var imageView = UIImageView(frame: CGRectMake(100, 150, 150, 150)); // set as you want var image = UIImage(named: "myImage.png"); imageView.image = image; self.view.addSubview(imageView); 

你有这段代码,这段代码设置宽度和高度并保存相同的位置。

 /** Resize UIImageView :param: UImage :param: new size CGSize :return: new UImage rezised */ func imageResize (#image:UIImage, sizeChange:CGSize)-> UIImage{ let hasAlpha = true let scale: CGFloat = 0.0 // Use scale factor of main screen UIGraphicsBeginImageContextWithOptions(sizeChange, !hasAlpha, scale) image.drawInRect(CGRect(origin: CGPointZero, size: sizeChange)) let scaledImage = UIGraphicsGetImageFromCurrentImageContext() return scaledImage } let size = CGSizeMake(100, 150) myImageView.image! = imageResize(myImageView.image!,sizeChange: size) 

在viewDidLoad中工作或刷新“reloadInputViews()”你的UIImageView 😉

**

编辑

**

嗨创建这个扩展,如果你想。

创建文件Extends.Swift添加此代码(在需要更改高度的位置添加导入基础

 /** Extension UIView */ extension UIView { /** Set x Position :param: x CGFloat */ func setX(#x:CGFloat) { var frame:CGRect = self.frame frame.origin.x = x self.frame = frame } /** Set y Position :param: y CGFloat */ func setY(#y:CGFloat) { var frame:CGRect = self.frame frame.origin.y = y self.frame = frame } /** Set Width :param: width CGFloat */ func setWidth(#width:CGFloat) { var frame:CGRect = self.frame frame.size.width = width self.frame = frame } /** Set Height :param: height CGFloat */ func setHeight(#height:CGFloat) { var frame:CGRect = self.frame frame.size.height = height self.frame = frame } } 

For Use(inheritanceUIView)

 inheritsOfUIView.setHeight(height: 100) button.setHeight(height: 100) view.setHeight(height: 100) 

Swift 3.0版本(来自@YannickSteph)

 extension UIImage { func imageResize (sizeChange:CGSize)-> UIImage{ let hasAlpha = true let scale: CGFloat = 0.0 // Use scale factor of main screen UIGraphicsBeginImageContextWithOptions(sizeChange, !hasAlpha, scale) self.draw(in: CGRect(origin: CGPoint.zero, size: sizeChange)) let scaledImage = UIGraphicsGetImageFromCurrentImageContext() return scaledImage! } } 

如果你想保持宽高比,这里是Swift 3的扩展方法:

 import UIKit extension UIImage { func resize(maxWidthHeight : Double)-> UIImage? { let actualHeight = Double(size.height) let actualWidth = Double(size.width) var maxWidth = 0.0 var maxHeight = 0.0 if actualWidth > actualHeight { maxWidth = maxWidthHeight let per = (100.0 * maxWidthHeight / actualWidth) maxHeight = (actualHeight * per) / 100.0 }else{ maxHeight = maxWidthHeight let per = (100.0 * maxWidthHeight / actualHeight) maxWidth = (actualWidth * per) / 100.0 } let hasAlpha = true let scale: CGFloat = 0.0 UIGraphicsBeginImageContextWithOptions(CGSize(width: maxWidth, height: maxHeight), !hasAlpha, scale) self.draw(in: CGRect(origin: .zero, size: CGSize(width: maxWidth, height: maxHeight))) let scaledImage = UIGraphicsGetImageFromCurrentImageContext() return scaledImage } }