调整UIImage的大小以适合表格单元格ImageView

时间:2016-11-25 23:36:01

标签: ios swift xcode uiimageview uiimage

我有176点大小176点的图像。我正在尝试调整它们的大小,以便它们适合tableViewCell的ImageView。我遇到了一些问题。

问题

  • 我不知道tableViewCell实际上是图像视图的大小。
  • 如果我只是简单地添加图像而不调整图像大小,它就会非常清晰,以至于它会丢失细节: Sharp Image
  • 如果我在UIImage(下图)上使用此扩展名,那么UIImage的透明部分会变成黑色,而不是我想要的:

Black Image

extension UIImage {
    func resizeImageWithBounds(bounds: CGSize) -> UIImage {
        let horizontalRatio = bounds.width/size.width
        let verticalRatio = bounds.height/size.height
        let ratio = max(horizontalRatio, verticalRatio)
        let newSize = CGSize(width: size.width * ratio, height: size.height * ratio)
        UIGraphicsBeginImageContextWithOptions(newSize, true, 0)
        draw(in: CGRect(origin: CGPoint.zero, size: newSize))
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return newImage!
    }
}

我正在寻找有关UIImageView有多大以及如何最好地调整图像大小的信息。我真的不想创建另一组资源(我有很多图像) ),我认为不应该这样做。

1 个答案:

答案 0 :(得分:1)

尝试更改单元格的cell.imageView?.contentMode = .scaleAspectFit

UIGraphicsBeginImageContextWithOptions(newSize, false, 0) // <-- changed opaque setting from true to false

或者,如果这不起作用,请按照以下方法解决调整后的图片变黑问题:

<div class="timer"></div>
<div>Elapsed</div>