新建Swift
和iOS
编程一般.我无法弄清楚如何设置图像的宽度和高度.
例如,
let backgroundImage = UIImage(named: "background.png")
Run Code Online (Sandbox Code Playgroud)
谢谢
iPa*_*tel 28
我的建议是.
您应该设置大小而不是设置图像大小,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);
Run Code Online (Sandbox Code Playgroud)
Yan*_*eph 16
你有这段代码,这段代码设置宽度和高度并保存相同的位置.
/**
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)
Run Code Online (Sandbox Code Playgroud)
在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
}
}
Run Code Online (Sandbox Code Playgroud)
For Use(继承UIView)
inheritsOfUIView.setHeight(height: 100)
button.setHeight(height: 100)
view.setHeight(height: 100)
Run Code Online (Sandbox Code Playgroud)
ode*_*ens 16
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!
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想保持宽高比,这里是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
}
}
Run Code Online (Sandbox Code Playgroud)