05|scrollerview的使用,滑动与缩放

注意:

1.scrollerview上的view可以进行滑动和缩放,而要做到这,一定得设置好contentsize。不然可能会有各种不知名的bug,乱滑动,缩放不按比例。

2.可以进行一些灵活设置,如:滑动是按页滑(即,一个屏宽),不能滑过限制(bounces),显示或隐藏滚动条。

3.滑动和缩放需要在代理方法中实现,只是在实现缩放前,需要在初始化时进行缩放的最大最小比例设置。

extension InfoViewController: UIScrollViewDelegate{
    //设置偏移,实现循环效果。该方法是在滑动结束后才进入
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        
        switch scrollView.tag {
        case 1:
            let leftOrRight = scrollView.contentOffset.x
            //索引值需要约束,在自减得时候不能小于0,自加的时候不能大于数组长度
            //如果是边界值向无值区域滑动,需要禁止
            indexSeg = mySegment.selectedSegmentIndex
            
            //判断左右滑动
            if leftOrRight > lastContentOffset {
                //向左滑动
                //print("left")
                if indexSeg < arySeg.count {
                    mySegment.selectedSegmentIndex = indexSeg+1
                    segmentClick()
                }
            }
            if leftOrRight < lastContentOffset {
                //向右滑动
                //print("rigtht")
                if indexSeg > 0 {
                    mySegment.selectedSegmentIndex = indexSeg-1
                    segmentClick()
                }
            }
        default:
            break
        }
 
    }
    
    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        switch scrollView.tag {
        case 1:
            lastContentOffset = scrollView.contentOffset.x
        default:
            break
        }
        
    }
    
    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return self.showPicV
    }
 
    func scrollViewDidZoom(_ scrollView: UIScrollView) {
        let imageV = scrollView.subviews.first
        self.centerShow(scrollview: scrollView, imageview: imageV as! UIImageView)
    }
    
    func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
        // 缩放效果
        // 放大或缩小
        if scrollView.minimumZoomScale >= scale
        {
            scrollView.setZoomScale(1.0, animated: true)
            
        }
        if scrollView.maximumZoomScale <= scale
        {
            scrollView.setZoomScale(2.0, animated: true)
        }
    }
}

你可能感兴趣的:(05|scrollerview的使用,滑动与缩放)