2017-03-02 2 views
2

스위프트 뷰가 3입니다. 줌이 작동하지 않습니다. scrollview를 설정하고 내부에 이미지 뷰를 넣습니다. 나는 위임자로 자신을 설정하고 viewForZoomingInScrollView를 구현했습니다. 이것을 봐주세요. 감사.스크롤보기에서 줌이 작동하지 않습니다.

편집 : 이전에 언급하지 않은 또 다른 사항은 탐색 컨트롤러에서보기라는 것입니다. 그게 그 영향을 미칠까요?

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 
    } 
} 

나는 스토리 보드와 코드에서 모두 scrollview를 정의하려고 노력했다.

답변

5

처럼 작동 아래와 같이

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

답변을 수락합니다. 다른 사람은 대답을 알 것입니다 – Vinodh

+0

일반적인 문제는 코드를 이동하고 찾기가 어렵습니다. Upvote 이것! –

1

이 2 개 라인이있는 viewDidLoad에 있어야합니다 : 그것은 신속 3 문제였다 매력

scrollView.contentSize = imageView.frame.size 
+0

이가있는 viewDidLoad 이미. 함수 호출을 확인하십시오 –

+0

죄송합니다. 내게 도움이되지 않아서 죄송합니다. – mjpablo23

+0

도움을 요청 해 주셔서 감사합니다. – mjpablo23

0

콘텐츠 사이 저를 변경해보십시오. 새로운 함수 프로토 타입 :

빠른 3 버전

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

빠른 2 버전

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

불행히도, 저의 도움이되지 않았습니다. – mjpablo23

+0

도와 주심에 감사드립니다. – mjpablo23

관련 문제