如何减少来自Web服务的图像大小?

时间:2017-07-21 06:36:32

标签: ios uitableview swift3

在下面显示的图像中,我从Web服务获取图像并将其传递到表格视图但是当向上和向下滚动时图像大小增加并且它在标签上重叠并且我已经给出约束也可以任何人帮助我怎么避免这个?

enter image description here

3 个答案:

答案 0 :(得分:4)

嘿,你不需要调整图像大小。

  1. 首先使用tableview单元格中的约束设置图像视图的固定高度宽度
  2. 第二次将imageview设置为aspectFit。

    imageView.contentMode = UIViewContentModeScaleAspectFit;
    
  3. 约束添加如下图像视图

  4. Image View Constraints

    希望您能够使用它获得成功,如果您对此有任何疑问,请发表评论

答案 1 :(得分:0)

使用内容模式拟合图像是一种选择,但如果您想裁剪或调整图像大小或压缩图像,请检查以下代码。

let imageData = image.compressImage(rate: 0.5)一样调用,然后如果需要,您可以提供数据来写入图像。

func compressImage(rate: CGFloat) -> Data? {
        return UIImageJPEGRepresentation(self, rate)
    }

或者如果您想裁剪图像,

func croppedImage(_ bound: CGRect) -> UIImage? {
        guard self.size.width > bound.origin.x else {
            print("X coordinate is larger than the image width")
            return nil
        }
        guard self.size.height > bound.origin.y else {
            print("Y coordinate is larger than the image height")
            return nil
        }
        let scaledBounds: CGRect = CGRect(x: bound.x * self.scale, y: bound.y * self.scale, width: bound.w * self.scale, height: bound.h * self.scale)
        let imageRef = self.cgImage?.cropping(to: scaledBounds)
        let croppedImage: UIImage = UIImage(cgImage: imageRef!, scale: self.scale, orientation: UIImageOrientation.up)
        return croppedImage
    }

确保将上述方法添加到UIImage Extension。

答案 2 :(得分:0)

我在表视图单元格上放置了一个视图,然后我放置了所有元素并为视图和元素提供了约束,然后我的问题已经减少并且在滚动时也能正常工作,如下图所示。 / p>

这是此屏幕的布局

enter image description here enter image description here