调整大小后,UITableViewCell中的UIImageView分辨率较低

mayy00

我真的对自动布局和UITableViewCell东西感到沮丧我有一个UITableView具有动态高度的单元格。单元格内部可以有图像。图片应适合UIImageView的宽度。

图像大于UIImageView的大小。因此,下载图像后,我调整了图像的大小,然后将其放入UIImageView但是,相对于UIImageView的宽度调整图像大小会导致分辨率降低,因为UIScreen的比例尺大于1。因此,我尝试在操作后增加图像的预期尺寸(尺寸=(比例尺* imageViewWidth,比例尺* imageViewHeight))。

但是,这次单元格的高度变大了2倍。我想做的基本上是在保持UIImageView高度不变的同时提高分辨率。

class ProgressImageView : UIImageView{
    func setImage(imagePath:String?, placeholder:String, showProgress:Bool, showDetail:Bool){
            if imagePath == nil{
                self.image = UIImage(named: placeholder)
            }else{

                if showProgress{
                    self.setShowActivityIndicatorView(true)
                    self.setIndicatorStyle(.Gray)
                }
                let placeholderImage = UIImage(named: placeholder)
                SDWebImageManager.sharedManager().downloadImageWithURL(NSURL(string: imagePath!), options: SDWebImageOptions.RefreshCached, progress: nil, completed: { (image, error, _, _, _) in
                    //resize image to fit width
                    if error != nil{
                        self.image = placeholderImage
                    }else {
                        self.setImageFitWidth(image)
                    }
                })
            }
    }
}

extension UIImageView{
    func setImageFitWidth(image: UIImage){
        let w = self.bounds.size.width //* UIScreen.mainScreen().scale
        print ("ImageView size:\(self.bounds.size) scaled width:\(w)")
        self.image = image.convertToWidth(w)
    }
}

extension UIImage{
    func convertToWidth(let width: CGFloat) -> UIImage{
        print ("Old image size:\(self.size)")
        let ratio = self.size.width / width
        let height = self.size.height / ratio
        let size = CGSizeMake(width, height)
        print ("New image size:\(size)")
        UIGraphicsBeginImageContext(size)
        self.drawInRect(CGRectMake(0, 0, size.width, size.height))
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}

如您在setImageFitWidth方法中看到的那样,如果没有UIScreen.mainScreen()。scale,则除了分辨率和缩放比例外,它都可以正常工作,UIImageView的尺寸加倍。顺便说一句,我尝试了内容模式的所有可能选项(宽高比,宽高比等),并且我正在使用自动布局。

导致分辨率降低:

在此处输入图片说明

产生高分辨率:

在此处输入图片说明

我希望我的屏幕与前一个ss一样,但图像的分辨率在第二个ss中。

加布里埃勒

尝试使用UIGraphicsBeginImageContextWithOptions(size: size, opaque: YES, scale: 0)绘制图像。比例0表示该功能将从设备获得适当的比例因子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据分辨率调整图像大小

来自分类Dev

如何在调整大小后显示用户的显示器分辨率?

来自分类Dev

如何在调整大小后显示用户的显示器分辨率?

来自分类Dev

有什么方法可以调整网页的大小,使其分辨率低于设计的分辨率?

来自分类Dev

如何自动调整网格中内容的大小,使其适合所有分辨率

来自分类Dev

Android xxxhdpi可绘制分辨率自动调整大小

来自分类Dev

CSS以任何分辨率调整高度/宽度的大小

来自分类Dev

根据屏幕分辨率调整图像的大小

来自分类Dev

调整Virtualbox窗口的大小时分辨率不变

来自分类Dev

防止重新调整窗口大小取决于分辨率

来自分类Dev

根据屏幕分辨率自动调整网页大小

来自分类Dev

在屏幕分辨率上调整字体大小

来自分类Dev

如何根据Android的分辨率调整TextView的大小

来自分类Dev

CSS以任何分辨率调整高度/宽度的大小

来自分类Dev

调整图像大小会降低分辨率

来自分类Dev

根据屏幕分辨率调整数据网格的大小

来自分类Dev

调整大小不遵守分辨率规范

来自分类Dev

调整屏幕分辨率后出现乱码

来自分类Dev

移动应用中的图像分辨率和大小

来自分类Dev

使我的网站缩放到CSS中的分辨率大小

来自分类Dev

调整到分辨率的 div 高度

来自分类Dev

较低分辨率的自举布局

来自分类Dev

渲染结果为像素化(或:分辨率较低)

来自分类Dev

有时图像加载的分辨率较低

来自分类Dev

如何使用GLKView绘制较低的分辨率?

来自分类Dev

Ubuntu 14.10屏幕分辨率较低,无法使用桌面

来自分类Dev

使用较低分辨率的图像

来自分类Dev

QT-保存较低分辨率的QPixmap

来自分类Dev

外部显示器缩放至较低的分辨率

Related 相关文章

热门标签

归档