【问题标题】:Zoomable UIImageView可缩放的 UIImageView
【发布时间】:2018-08-31 20:51:32
【问题描述】:

我正在使用这个library for zoomable UIImageView

问题:当图像宽度小于屏幕宽度时,它与屏幕左侧对齐。在第一次尝试缩放后,它被纠正了。

我已经搜索并尝试了很多答案并尝试解决此问题,但似乎它使用的方式与其他人建议的方式相同。

这里是库源代码的链接: https://github.com/huynguyencong/ImageScrollView/blob/master/Sources/ImageScrollView.swift

【问题讨论】:

    标签: ios swift uiscrollview uiimageview zooming


    【解决方案1】:

    为什么不使用简单的UIWebView?这样您就不需要任何框架:

    @IBOutlet weak var webView: UIWebView!
    
    func loadImage(url: URL) {
        self.webView.stopLoading()
                let html = "<!DOCTYPE html>" +
                "<html>" +
                "<head>" +
                "<meta charset=\"UTF-8\">" +
                "<style type=\"text/css\">" +
                "img{position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; max-width: 100%; max-height: 100%;}" +
                "</style>" +
                "</head>" +
                "<body>" +
                "<img src='\(url)'/>" +
                "</body>" +
                "</html>"
        self.webView.loadHTMLString(html, baseURL: nil)
    }
    

    您可以加载具有远程 URL 的文件以及具有本地 URL 的文件。例如,您可以像这样获取本地 URL:

    let url = URL(fileURLWithPath: Bundle.main.path(forResource: "image", ofType: "png")!)!
    

    【讨论】:

    • 对此进行了测试,但是如何在不先将其保存在磁盘上的情况下加载 UIImage?
    • UIWebView 只能通过 URL 显示图像。这要求文件具有固定的本地或远程位置。但是为什么保存图像会出现问题?例如,您可以将文件保存到临时目录。也许您应该解释一下您要做什么。
    • 首先我可以通过 loadData 或其他东西(我不记得语法)将图像加载到 UIWebview 中,然后在 pagerView 的单元格中使用它(从右到左滚动,反之亦然) ,这种方法会导致很多滞后并使用大量内存,并且它还与 pagerView 滚动冲突,我通过在显示图像之前添加 self.view.layoutIfneeded 修复了这个库,顺便感谢您的回复
    猜你喜欢
    • 2020-10-01
    • 2012-05-27
    • 2011-04-19
    • 2010-12-07
    • 1970-01-01
    • 2015-07-12
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多