2015-12-01 325 views
2

我有一个UIImageView的大小(宽=屏幕大小,高度= 239)。我现在下载一个尺寸为(宽度= 1366和高度= 445)的图像。UIImageView调整大小/缩放 - SWIFT

我无法使用Aspect Fit(由于白色背景)或Scale(缩小纵横比)。我确实希望使用Aspect Fill并以特定的方式将其对齐 - 即在右对齐的方面填充或左对齐的方面填充。有谁知道如何做到这一点?

我已经使用了像Toucan这样的不同的库,但是我似乎无法让它正常工作。谢谢你一堆。

回答

1

您可以使用SDWebImage翠鸟显示占位符图像和高速缓存... 然后在其完成块写代码来调整的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!) 
     } 

    } 

} 

希望这有助于。

+0

似乎对我来说是一个足够好的解决方案。我所做的是将图像缩放到图像的高度,然后在.center,.left和.right之间切换。尽管如此,将会把你的答案作为答案。 –

+0

很高兴能帮到你! –