无法在滚动视图中缩放 UIImage

Posted

技术标签:

【中文标题】无法在滚动视图中缩放 UIImage【英文标题】:Can't zoom UIImage in a Scroll View 【发布时间】:2015-09-18 12:33:55 【问题描述】:

我正在尝试让用户将我的图像放大到类似的结构中;

视图控制器 -->滚动视图 ----->UIImage

我可以滚动页面,但不能放大或缩小。我想我在这里遗漏了一些东西。谢谢……

这是我的代码:

import UIKit
import Parse
import ParseUI

class ViewController: UIViewController, UIScrollViewDelegate 

    @IBOutlet weak var image: UIImageView!

    @IBOutlet weak var label: UILabel!

    @IBOutlet weak var scrollView: UIScrollView!

    var currentObject : PFObject?

    override func viewDidLoad() 
        super.viewDidLoad()

        self.scrollView.maximumZoomScale = 5.0
        self.scrollView.minimumZoomScale = 0.5
        self.scrollView.delegate = self
        self.scrollView.addSubview(image)

        func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? 
            return image
        
            if let object = currentObject 

            if let imageName = object["file"] as? PFFile 
                imageName.getDataInBackgroundWithBlock(
                    (result, error) in
                    self.image.image = UIImage(data: result!)
                )
            
            label.text = object["fileName"] as? String
        
            

        override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
    

【问题讨论】:

【参考方案1】:

只需将您的viewForZoomingInScrollView 方法从viewDidLoad 移出即可。

您的代码将是:

import UIKit
import Parse
import ParseUI

class ViewController: UIViewController, UIScrollViewDelegate 

    @IBOutlet weak var image: UIImageView!

    @IBOutlet weak var label: UILabel!

    @IBOutlet weak var scrollView: UIScrollView!

    var currentObject : PFObject?

    override func viewDidLoad() 
        super.viewDidLoad()

        self.scrollView.maximumZoomScale = 5.0
        self.scrollView.minimumZoomScale = 0.5
        self.scrollView.delegate = self
        self.scrollView.addSubview(image)

        if let object = currentObject 

            if let imageName = object["file"] as? PFFile 
                imageName.getDataInBackgroundWithBlock(
                    (result, error) in
                    self.image.image = UIImage(data: result!)
                )
            
            label.text = object["fileName"] as? String
        
    

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? 
        return image
    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
    

希望对你有帮助。

【讨论】:

我知道我缺少一些基本的东西。 :) 非常感谢你,我在这上面浪费了我的时间,很抱歉修复了基本问题,我只是一个初学者 很高兴为您提供帮助..:)

以上是关于无法在滚动视图中缩放 UIImage的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIScrollView 内使用 Autolayout 将 UIImage 视图缩放为正方形

将 UIImage 定位在 UIScrollView 的中心进行缩放

使用 UIImage 放大滚动视图

UIScrollview 子视图在缩放后无法识别平移手势

缩放时,UIScrollview 子视图无法识别手势

如何将 UIImage 从滚动视图拖动到视图