2017-03-01 52 views
2

我有uitableview,並在這個uitableview我有一個單元格。這個單元格有一個寬度相等的2個圖像視圖。我希望​​這2個圖像視圖佔據整個寬度,第一個圖像視圖的一半寬度屏幕第二個圖像查看另一半。我從翠鳥那裏得到的圖像,我如何從網址得到的圖像根據寬度調整大小。如果圖像是200 - 200例如,我得到的半寬是400 ..我希望我的圖像高度調整到400.如果我有300 - 400,我和我有寬度150 ..我希望我的圖像高度調整到200.並且還調整正在處理的單元格的大小。翠鳥圖像調整從url加載的圖像

如何使用翠鳥庫做到這一點?

回答

0

使用翠鳥我做了以下。

let url = URL(string: urlImage) 

    cell.imageView?.kf.setImage(with: url, 
           placeholder: nil, 
           options: [.transition(ImageTransition.fade(1))], 
           progressBlock: { receivedSize, totalSize in 
            print("\(indexPath.row + 1): \(receivedSize)/\(totalSize)") 
    }, 
           completionHandler: { image, error, cacheType, imageURL in 

            print("\(indexPath.row + 1): Finished") 
            print(image?.size) 
            cell.imageView?.image = self.resizeImage(image: image!, newWidth: 40.0) 

    }) 

您CAND修改resizeImage功能,以改變你的圖像大小,在我的情況我犯了一個方形的圖像。

func resizeImage(image: UIImage, newWidth: CGFloat) -> UIImage { 

    let scale = newWidth/image.size.width 
    let newHeight = image.size.height * scale 
    UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight)) 
    image.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight)) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage! 
} 

,或者您可以通過用戶KingfisherManager

KingfisherManager.shared.retrieveImage(with: url!, options: nil, progressBlock: nil, completionHandler: { image, error, cacheType, imageURL in 

     cell.imageView?.image = ImageUtils.resizeImage(image: image!, newWidth: 40.0) 

    })