UIImageView调整大小以消除空白IOS

时间:2017-07-06 15:00:18

标签: ios swift uiimageview

我的UIImageView处于宽高比适合模式,在实际图像下留下空白。

UIImageView displayment

蓝色空间是我想要消除的,所以imageView包装图像(如果我只有包装内容)。看起来像一个简单的任务,但我很快就意识到图像是方位适合所以图像视图改变了图像的宽度和高度但是我必须根据改变的图像对图像视图进行计算永远不会结束缩小图像的循环。

UIImageView in the app

我只想删除空白区域,使其看起来更简洁。 GitHub上的完整项目:https://github.com/sak6lab/Closet-Space

2 个答案:

答案 0 :(得分:5)

我最近为此提出了一个雷达,因为我认为它是破碎的行为。

目前,我发现解决此问题的最佳方法是根据图像的纵横比向图像视图添加纵横比约束。 (虽然图像会发生变化,但您必须更新约束。)

像...一样的东西。

imageView.widthAnchor.constraint(equalTo: imageView.heightAnchor, multiplier: image.size.width / image.size.height).isActive = true

您可以将其包装到UIImageView子类中。覆盖didSet属性的image,甚至只需添加新功能。

请注意,因为您需要确保只创建一个约束,并在后续传递中更新已存在的约束。

答案 1 :(得分:0)

因此,根据Fogmeister答案,而不是宽度,将其更改为高度,然后将视图的高度更改为宽度

  window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fsSuccess, fail);

    function fsSuccess(fs){


        pdfPath=fs.root.toURL()+"sample.pdf";
        window.resolveLocalFileSystemURL(fs.root.toURL(), function(fileSystem){
            fileSystem.getDirectory("test", {create: true, exclusive: false},function(directorypp){
                directorypp.getFile("temp.pdf", {create:true}, function(entry) {
                    var fileEntry = entry;
                    //console.log(entry);
                    venufile=entry;
                    entry.createWriter(function(writer) {
                        writer.onwrite = function(evt) {
                            console.log("write success");
                            };
                        writer.write( pdfOutput );
                        console.log("writing to file");             

                    }, function(error) {
                        alert(error);
                    });

                }, onError);
            }, onError);

        } , onError);

    }
    function fail(error)
    {
        alert(error);
    }

其中newsize是我们使用.scaleaspectfit缩放后的CGRect 请注意https://www.hackingwithswift.com/example-code/uikit/how-to-find-an-aspect-fit-images-size-inside-an-image-view

中的以下扩展名
let newsize = self.feedImage.contentClippingRect

self.feedImage.heightAnchor.constraint(equalTo: self.feedImage.widthAnchor, multiplier:newsize.width / newsize.height).isActive = true