UIImageView 调整大小/缩放 - SWIFT
UIImageView Resizing / Scaling - SWIFT
我有一个大小为(宽度 = 屏幕大小,高度 = 239)的 UIImageView。我现在下载一个大小为(宽度 = 1366 和高度 = 445)的图像。
我无法使用 Aspect Fit(因为白色背景)或 Scale(搞砸了纵横比)。我确实想使用 Aspect Fill 并以特定方式对齐它 - 即右对齐的方面填充或左对齐的方面填充。有谁知道如何做到这一点?
我使用过不同的库,比如 Toucan,但我似乎无法让它工作。非常感谢。
您可以使用 SDWebImage 或 Kingfisher 来显示占位符图像和缓存...
然后在其完成块中编写代码以调整 imageView
的大小
@IBOutlet weak var yourImageView: UIImageView!
func loadImage(){
SDWebImageManager.sharedManager().downloadImageWithURL(imgURL, options: SDWebImageOptions.CacheMemoryOnly, progress: { (received, expected) -> Void in
}) { (theImage : UIImage!, error : NSError!, cacheType : SDImageCacheType!, bool : Bool, imageUrl : NSURL!) -> Void in
let aspect = theImage.size.width / theImage.size.height
self.aspectConstraint = NSLayoutConstraint(item: self.yourImageView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: self.yourImageView, attribute: NSLayoutAttribute.Height, multiplier: aspect, constant: 1.2)
self.yourImageView.image = theImage
}
}//loadImage
var aspectConstraint: NSLayoutConstraint? {
willSet {
if((aspectConstraint) != nil) {
self.yourImageView.removeConstraint(self.aspectConstraint!)
}
}
didSet {
if(aspectConstraint != nil) {
self.yourImageView.addConstraint(self.aspectConstraint!)
}
}
}
希望对您有所帮助。
我有一个大小为(宽度 = 屏幕大小,高度 = 239)的 UIImageView。我现在下载一个大小为(宽度 = 1366 和高度 = 445)的图像。
我无法使用 Aspect Fit(因为白色背景)或 Scale(搞砸了纵横比)。我确实想使用 Aspect Fill 并以特定方式对齐它 - 即右对齐的方面填充或左对齐的方面填充。有谁知道如何做到这一点?
我使用过不同的库,比如 Toucan,但我似乎无法让它工作。非常感谢。
您可以使用 SDWebImage 或 Kingfisher 来显示占位符图像和缓存... 然后在其完成块中编写代码以调整 imageView
的大小@IBOutlet weak var yourImageView: UIImageView!
func loadImage(){
SDWebImageManager.sharedManager().downloadImageWithURL(imgURL, options: SDWebImageOptions.CacheMemoryOnly, progress: { (received, expected) -> Void in
}) { (theImage : UIImage!, error : NSError!, cacheType : SDImageCacheType!, bool : Bool, imageUrl : NSURL!) -> Void in
let aspect = theImage.size.width / theImage.size.height
self.aspectConstraint = NSLayoutConstraint(item: self.yourImageView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: self.yourImageView, attribute: NSLayoutAttribute.Height, multiplier: aspect, constant: 1.2)
self.yourImageView.image = theImage
}
}//loadImage
var aspectConstraint: NSLayoutConstraint? {
willSet {
if((aspectConstraint) != nil) {
self.yourImageView.removeConstraint(self.aspectConstraint!)
}
}
didSet {
if(aspectConstraint != nil) {
self.yourImageView.addConstraint(self.aspectConstraint!)
}
}
}
希望对您有所帮助。