2017-03-02 6 views
2

Ich habe einen Scrollview in swift 3. Der Zoom funktioniert nicht. Ich habe den Scrollview eingerichtet und ein Imageview eingefügt. Ich habe selbst als den Delegierten festgelegt und implementiert ViewForZoomingInScrollView. Bitte schau es dir an. Vielen Dank.Zoom funktioniert nicht in Bildlaufansicht

bearbeiten: eine andere Sache, die ich zuvor nicht erwähnt habe, war, dass dies in einem Navigationscontroller angezeigt wird. würde das beeinflussen?

class FlowDiagramViewController: UIViewController, UIScrollViewDelegate { 

    var scrollView: UIScrollView! 
    var imageView:UIImageView! = UIImageView() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     let image = UIImage(named: "flowNewRotated1242x2208.png") 
     imageView = UIImageView(image: image) 

     setupPictureWithZoom() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func setupPictureWithZoom() { 
     // http://stackoverflow.com/questions/30014241/uiimageview-pinch-zoom-swift 

     imageView.frame = CGRect(x: 0, y: 0, width: 1242, height: 2208) 
     // imageView.transform = imageView.transform.rotated(by: CGFloat(M_PI_2)) 
     imageView!.layer.cornerRadius = 11.0 
     imageView!.clipsToBounds = false 

     scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)) 


     scrollView.minimumZoomScale = 0.25 
     scrollView.maximumZoomScale = 5.0 

     scrollView.delegate = self 

     scrollView.backgroundColor = UIColor(red: 90, green: 90, blue: 90, alpha: 0.90) 
     scrollView.alwaysBounceVertical = false 
     scrollView.alwaysBounceHorizontal = false 
     scrollView.showsVerticalScrollIndicator = true 
     scrollView.flashScrollIndicators() 
     scrollView.contentSize = CGSize(width: 1242, height: 2208) 


     scrollView.addSubview(imageView!) 
     view.addSubview(scrollView!) 


     scrollView.setZoomScale(0.25, animated: true) 
    } 

    func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView! { 
     return imageView 
    } 
} 

Ich habe versucht, sowohl die Scrollview im Storyboard und im Code zu definieren.

Antwort

5

es war eine schnelle 3 Ausgabe funktioniert. neuer Funktionsprototyp:

swift 3 Version

func viewForZooming(in scrollView: UIScrollView) -> UIView? { 
     return imageView 
    } 

swift 2 Version

// func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView! { 
//  return imageView 
// } 
+0

akzeptieren die Antwort so andere werden Antwort wissen – Vinodh

+0

Häufiges Problem beim Verschieben von Code und schwer zu finden. Upvote das! –

1

Diese 2 Zeilen müssen in der viewDidLoad sein:

scrollView.minimumZoomScale = 0.25 
scrollView.maximumZoomScale = 5.0 
+0

Diese sind bereits in viewDidLoad. Überprüfen Sie den Funktionsaufruf –

+0

Entschuldigung, das hat nicht für mich funktioniert – mjpablo23

+0

danke für den Versuch zu helfen, fand ich es – mjpablo23

0

Versuchen Sie, den Sizer Inhalt zu ändern, wie es unten wie ein Zauber

scrollView.contentSize = imageView.frame.size 
+0

leider, das hat nicht für mich funktioniert – mjpablo23

+0

danke für den Versuch zu helfen, fand ich es – mjpablo23

Verwandte Themen