2017-06-06 2 views
-1

Ich bin mit diesem seltsamen Problem mit Scroll-Ansicht in Swift konfrontiert, Das Bild scrollt nicht, auch nach dem Definieren der Bildlaufansicht in der Datei, ich habe auch Zoom hinzugefügt und es hat gut funktioniert. Bitte helfen Sie mir mit diesem https://pastebin.com/1uC3fqHGKann Bild nicht scrollen mit Bildlauf in Swift

import UIKit 

class ImageViewController: UIViewController 
{ 
    var imageURL: URL? { 
     didSet { 
      image = nil 
      if view.window != nil { 
       fetchImage() 
      } 
     } 
    } 

    private func fetchImage() { 
     if let url = imageURL { 
      let urlContents = try? Data(contentsOf: url) 
      if let imageData = urlContents { 
       image = UIImage(data: imageData) 
      } 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     view.addSubview(imageView) 
     imageURL = URL(string: "http://www.lamborghini.com/en-en/sites/en-en/files/DAM/lamborghini/share%20img/huracan-coupe-facebook-og.jpg") 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     if image == nil { 
      fetchImage() 
     } 

    } 

    @IBOutlet weak var scrollView: UIScrollView! { 
     didSet { 

      scrollView.delegate = self 
      scrollView.minimumZoomScale = 0.03 
      scrollView.maximumZoomScale = 2.0 
      scrollView.contentSize = imageView.frame.size 
      scrollView.addSubview(imageView) 
     } 
    } 


    fileprivate var imageView = UIImageView() 

    private var image: UIImage? { 
     get{ 
      return imageView.image 
     } 
     set{ 
      imageView.image = newValue 
      imageView.sizeToFit() 
      scrollView?.contentSize = imageView.frame.size 
     } 
    } 
} 

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

Antwort

0

das Problem ist, dass Sie das Bild zur Ansicht in viewDidLoad hinzufügen(). Entfernen Sie view.addSubview(imageView) von der ViewDidLoad() und alle werden perfekt funktionieren. -Code wird sich wie folgt

import UIKit 

class ImageViewController: UIViewController 
{ 
    var imageURL: URL? { 
     didSet { 
      image = nil 
      if view.window != nil { 
       fetchImage() 
      } 
     } 
    } 

    private func fetchImage() { 
     if let url = imageURL { 
      let urlContents = try? Data(contentsOf: url) 
      if let imageData = urlContents { 
       image = UIImage(data: imageData) 
      } 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     imageURL = URL(string: "http://www.lamborghini.com/en-en/sites/en-en/files/DAM/lamborghini/share%20img/huracan-coupe-facebook-og.jpg") 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     if image == nil { 
      fetchImage() 
     } 

    } 

    @IBOutlet weak var scrollView: UIScrollView! { 
     didSet { 

      scrollView.delegate = self 
      scrollView.minimumZoomScale = 0.03 
      scrollView.maximumZoomScale = 2.0 
      scrollView.contentSize = imageView.frame.size 
      scrollView.addSubview(imageView) 
     } 
    } 


    fileprivate var imageView = UIImageView() 

    private var image: UIImage? { 
     get{ 
      return imageView.image 
     } 
     set{ 
      imageView.image = newValue 
      imageView.sizeToFit() 
      scrollView?.contentSize = imageView.frame.size 
     } 
    } 
} 

extension ImageViewController: UIScrollViewDelegate 
{ 
    func viewForZooming(in scrollView: UIScrollView) -> UIView? { 
     return imageView 
    } 
} 
+1

Vielen Dank :) –

0

Sie sollten den Inhalt Größe werden die Aktualisierung und aktualisieren die Bildansicht Einschränkungen Kasse dieses tutorial

Verwandte Themen