2017-04-25 17 views
1

가로로 스크롤되는 이미지가있는 스크롤보기가 있습니다. 핀치 제스처를 사용하여 확대/축소하고 싶습니다. 이것은 내가 사용하고있는 코드이지만 작동하지 않습니다. 나는 내가 뭘 잘못하고 있는지 알아낼 수 없다. 어떤 제안을 해주시겠습니까?ScrollView의 이미지 확대

let scrollView = UIScrollView(frame: CGRect(x: 0, y: 100, width: UIScreen.main.bounds.size.width , height: (UIScreen.main.bounds.size.height - 140))) var frame: CGRect = CGRect(x: 0, y: 0, width: 0, height: 0) 
var subView = UIImageView() 
override func viewDidLoad() { 
    super.viewDidLoad() 
    getOfferImages() 
    swipeGesture() 
    setupView() 
    scrollView.delegate = self 
    scrollView.minimumZoomScale = 1.0 
    scrollView.maximumZoomScale = 4.0 
} 
func configureScrollView(){ 

    scrollView.backgroundColor = UIColor.black 
    scrollView.showsHorizontalScrollIndicator = false 
    scrollView.isUserInteractionEnabled = true 
    scrollView.clipsToBounds = true 
    scrollView.bouncesZoom = true 

    pageNumberlabel.text = "1 of \(offersImagesArray.count)" 
    self.view.addSubview(scrollView) 

    for index in 0..<images.count { 

     frame.origin.x = self.scrollView.frame.size.width * CGFloat(index) 
     frame.size = self.scrollView.frame.size 
     subView = UIImageView(frame: frame) 
     subView.tag = 1 
     subView.contentMode = .scaleToFill 
     subView.isUserInteractionEnabled = true 
     subView.sd_setImage(with: images[index], placeholderImage: UIImage(named:""), options: [.continueInBackground]) 
     self.scrollView.addSubview(subView) 
    } 
    self.scrollView.isPagingEnabled = true 
    self.scrollView.contentSize = CGSize(width: (self.scrollView.frame.size.width * CGFloat(images.count)), height: self.scrollView.frame.size.height) 

} 
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { 
    // let image = self.view.findSubview(withTag: 1) 
    return self.subView 
} 

답변

1

당신은 다음 아래와 같은 함수에 연결하여 스토리 보드에 PinchGestureRecognizer을 추가해야합니다.

@IBAction func scaleImage(_ sender: UIPinchGestureRecognizer) { 
    self.subView.transform = self.subView.transform.scaledBy(x: sender.scale, y: sender.scale) 
    sender.scale = 1 
} 

: subView은 당신이 확장하려고하는 뷰에서 교체해야합니다.

+0

나는이 시도에 이미지를 반환, 스크롤 뷰 대리자를 설정 확장, 그것은 핀치 제스처를 인식 않지만, 아무튼 이미지를 확대/축소하지 마십시오. 조금 깜박입니다. – Stephanie

+0

@Stephanie 편집보기 참조. – MwcsMac

+0

@ 스 태피 당신을 위해 그 일을 했습니까? 아니면 여전히 문제가 있습니까? – MwcsMac

0

1) 설정 줌

scrollView.maximumZoomScale = 10 
scrollView.minimumZoomScale = 1 

2) viewForZooming

func viewForZooming(in scrollView: UIScrollView) -> UIView? { 
    return myImageView 
} 
그래서