2017-04-25 3 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

だから私はこれを試してみました、それはピンチジェスチャーを認識しませんが、それはdoesnの画像をズームすると、少しだけ点滅します。 – Stephanie

+0

@Stephanie編集を参照してください。 – MwcsMac

+0

@Stephanieそれはあなたのために働いたのですか?それともあなたはまだ問題がありますか? – MwcsMac

0

1))ズームが

scrollView.maximumZoomScale = 10 
scrollView.minimumZoomScale = 1 

2のスケールを設定し、スクロールビューのデリゲートを設定し、viewForZooming

であなたのイメージを返す
func viewForZooming(in scrollView: UIScrollView) -> UIView? { 
    return myImageView 
}