Ios 如何为所有iPhone分辨率选择1 UIImage大小?

Ios 如何为所有iPhone分辨率选择1 UIImage大小?,ios,uiimage,screen-resolution,Ios,Uiimage,Screen Resolution,如果我(目前)只能添加一个图像大小,我应该选择什么图像大小? 图像将在UITableViewCell中使用,最可能的宽度是从边到边,而高度可能会有所不同 所以,我是否应该添加1242px宽度的图像,然后应用程序本身将其缩小到750/640px?或者我应该使用750px,因为iPhone 6的用户比6+多,而且更多的用户会拥有更好的图像(换言之,更多的人会看到原始图像,而不是缩放图像)?使用1242px图像并缩小它的比例。要获得尽可能最佳的图像质量,请设置yourUIImageView.layer

如果我(目前)只能添加一个图像大小,我应该选择什么图像大小? 图像将在
UITableViewCell
中使用,最可能的宽度是从边到边,而高度可能会有所不同


所以,我是否应该添加1242px宽度的图像,然后应用程序本身将其缩小到750/640px?或者我应该使用750px,因为iPhone 6的用户比6+多,而且更多的用户会拥有更好的图像(换言之,更多的人会看到原始图像,而不是缩放图像)?

使用1242px图像并缩小它的比例。要获得尽可能最佳的图像质量,请设置yourUIImageView.layer.minificationFilter=kCAFilterTrilinear。使用三线性过滤时,您不会看到图像质量有任何差异

另一个选项是在使用图像之前缩小图像的比例:

extension UIImage {
  public func rescale(width: CGFloat, _ height: CGFloat) -> UIImage {
    let newSize = CGSizeMake(width, height)

    UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
    drawInRect(CGRectMake(0.0, 0.0, newSize.width, newSize.height))
    let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return scaledImage
  }
}

let myImage = UIImage(named: "myimage").rescale(newWidth, newHeight)

如果我只是简单地添加像cell.myImageView.image=someImage这样的图像,这样做不好吗?换句话说,它有多糟糕?如果你已经设置了minificationFilter,那么你可以将图像设置为imageview。请记住设置正确的内容模式以保持图像纵横比正确。因此,我选择了纵横比匹配,将
UImage.frame.size
调整为与原始图像成比例,然后
cell.myImageView.image=someImage
cell.myImage.layer.minificationFilter=kCAFilterTrilinear
,这就是您需要做的所有事情。