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

作者: 大米的木头 | 来源:发表于2017-06-26 07:58 被阅读71次

    注意:

    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的使用,滑动与缩放

        本文链接:https://www.haomeiwen.com/subject/jnrkcxtx.html