2016-06-22 8 views
0

スクロールビューでページングとズームを有効にして表示したい画像配列(サーバーからダウンロード)がありますが、解決策が見つかりませんでした。私は多くを探していますが、私は何の解決策も得ていませんでした。UIscrollViewスピーディーなページングとズームの画像

本当にありがとうございます。 ありがとう!メインコントローラ

var mainScrollView: UIScrollView! 


override func viewDidLoad() { 
    super.viewDidLoad() 
    var x:CGFloat = 0 
    mainScrollView = UIScrollView(frame: view.bounds) 
    mainScrollView.pagingEnabled = true 
    let images=["image.png","photo.jpg","3.png"] 
    for var i = 0; i < images.count; i++ 
    { 

     let imageView = UIImageView(image: UIImage(named: images[i])) 

     let scrollView = SlideShow(image: imageView, scrollFrame: CGRectMake(x, view.bounds.origin.y, view.bounds.width, view.bounds.height)) 

     x = x + UIScreen.mainScreen().bounds.size.width 
     mainScrollView.addSubview(scrollView) 
    } 
    mainScrollView.contentSize=CGSizeMake(x, self.mainScrollView.frame.size.height); 
    mainScrollView.contentOffset=CGPointMake(0, 0); 
    view.addSubview(mainScrollView) 
    // Do any additional setup after loading the view. 


} 
サブクラスでは

public class SlideShow: UIScrollView, UIScrollViewDelegate { 

public var imageView = UIImageView() 


// MARK: - Life cycle 

init(image: UIImageView, scrollFrame: CGRect) { 

    super.init(frame: scrollFrame) 

    //image.setToImageView(imageView) 
    imageView = image 
    imageView.clipsToBounds = true 
    imageView.userInteractionEnabled = true 

    // UIScrollView(frame: bounds) 
    delegate = self 
    showsVerticalScrollIndicator = false 
    showsHorizontalScrollIndicator = false 
    backgroundColor = UIColor.blackColor() 
    // contentSize = imageView.bounds.size 
    // autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 
    contentOffset = CGPoint(x: 1000, y: 450) 

    addSubview(imageView) 

    // setZoomScale() 

    setupGestureRecognizer() 

} 


func setupGestureRecognizer() { 
    let doubleTap = UITapGestureRecognizer(target: self, action: "handleDoubleTap:") 
    doubleTap.numberOfTapsRequired = 2 
    addGestureRecognizer(doubleTap) 
} 

func handleDoubleTap(recognizer: UITapGestureRecognizer) { 

    if (zoomScale > minimumZoomScale) { 
     setZoomScale(minimumZoomScale, animated: true) 
    } else { 
     setZoomScale(maximumZoomScale, animated: true) 
    } 
} 


required public init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 
override public func layoutSubviews() { 
    setZoomScale() 
    //setZoomScale(minimumZoomScale, animated: false) 
} 


public func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { 

    return imageView 

} 


func setZoomScale() { 
    let imageViewSize = imageView.bounds.size 
    let scrollViewSize = bounds.size 
    let widthScale = scrollViewSize.width/imageViewSize.width 
    let heightScale = scrollViewSize.height/imageViewSize.height 

    minimumZoomScale = min(widthScale, heightScale) 
    zoomScale = 1.0 
} 

public func scrollViewDidZoom(scrollView: UIScrollView) { 
    let imageViewSize = imageView.frame.size 
    let scrollViewSize = bounds.size 

    let verticalPadding = imageViewSize.height < scrollViewSize.height ? (scrollViewSize.height - imageViewSize.height)/2 : 0 
    let horizontalPadding = imageViewSize.width < scrollViewSize.width ? (scrollViewSize.width - imageViewSize.width)/2 : 0 

    scrollView.contentInset = UIEdgeInsets(top: verticalPadding, left: horizontalPadding, bottom: verticalPadding, right: horizontalPadding) 
} 

}

+0

あなたのコードを提供してください... – DJ1

+0

これはあなたを助けるませんでしたか? https://www.raywenderlich.com/122139/uiscrollview-tutorial – Santosh

+0

NO。私は質問を更新している、pleseは見ている。 – Prabhat

答えて

0

ソリューション1では

: -Agrume Library with load photo url.
あなたがイメージビューアを使用(および付属することができ、複数の方法がありますプロジェクトの例がすべて表示されます)。

これはそのためのライブラリです。

enter image description here

解決策2: - This library provide multiple images and zoom also.

+0

これを試してみましょう。ズームした後、スクロールビューで余分なスペースがたくさんあります。 – Prabhat

+0

私の編集回答を確認してください。 –

+0

には、機能ページングとズームの両方が含まれています。 – Prabhat

関連する問題