Swift4如何放大UIScrollView(启用分页)

时间:2018-06-19 16:05:52

标签: ios swift uiscrollview

在我的代码中,缩放时移动非常不稳定。 (启用分页时)
可能是不合适的代码。
但是我不知道该如何改善。
请告诉我。

UIScrollView正在分页。
我想像iBooks一样进行缩放运动。

class TestView: UIView, UIScrollViewDelegate {

    @IBOutlet weak var scrollView: UIScrollView!

    var cell_Array:[String] = []

    var objc_Array:[UIImageView] = []

    /// instance of xib
    class func instance() -> TestView {
        return UINib(nibName: "TestView", bundle: nil).instantiate(withOwner: self, options: nil)[0] as! TestView
    }

    /// init value
    func initV(){

        self.scrollView.delegate = self
        self.scrollView.minimumZoomScale = 1.0
        self.scrollView.maximumZoomScale = 6.0

    }

    func setupViews(){

        for (index,i) in self.cell_Array.enumerated(){

            let img_View = UIImageView()
            img_View.frame = self.frame
            img_View.contentMode = .scaleAspectFit
            img_View.frame.origin.x = self.frame.size.width * CGFloat(index)
            img_View.image = UIImage(named: i)

            self.scrollView.addSubview(img_View)

            self.objc_Array.append(img_View)

        }

        self.scrollView.contentSize.width = CGFloat(self.cell_Array.count) * self.frame.size.width

    }

    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return self.objc_Array[self.now_Cell_Num]
    }

    func scrollViewDidZoom(_ scrollView: UIScrollView) {
        scrollView.contentInset = UIEdgeInsets(
            top: max((self.scrollView.frame.height - self.objc_Array[self.now_Cell_Num].frame.height) / 2.0, 0.0),
            left: max((self.scrollView.frame.width - self.objc_Array[self.now_Cell_Num].frame.width) / 2.0, 0.0),
            bottom: 0,
            right: 0
        );
    }

}

0 个答案:

没有答案