IOS-笔记12(ScrollView)

ScrollView:

      最基本的,使用时应先设定你需要滚动的画布的大小:

scrollview.contentSize = CGSize(width:1200, height: 2000)

      接下来设置你要添加的子View:

aerial.frame = CGRect(x: 150, y: 200, width: 2500, height: 1600)

      将需要添加进scrollView的子View加入即可:

scrollView.addSubview(aerial)

      通过.contentOffset方法可以获得当前的偏移量,这是一个CGPoint类型。展示在手机上的是整个scrollView的一部分,这一部分的外边框就是scrollView的bounds。如果你想得到一个点在scrollerView中子View的坐标,使用方法convertRect即可。

      初始化ScrollView时记得设置contentSize,这个如果不设置你的View的大小是0。

       通常用户使用手来滑动ScrollView,你同样可以使用代码来实现:使用方法scrollViewRectToVisible。可以锁定滑动方向只能是上下左右等等,需要时看UIScrollView文档咯。

       所有的UI View都有一个属性叫transfrorm,包括scale,rotate,translate等。Zooming一个View会改变它的scale zooming会影响scrollView的contentSize和contentOffect。必须设置最大和最小比例(minimumZoomScale)。同样必须使用代理方法来实现:viewForZoomingInScrollView(Sender: UIScrollerView) -> UIView,这个方法返回你需要Zooming的View。这些都设置好了以后,就可以使用各种方法来Zooming了,比如setZoomScale,zoomToRect等。

在Objective-C中的协议可以指定可选方法,声明实现这个协议的类可以不实现这类方法,Swift中不支持这样的写法,如果你想写,在声明前面加上@obj

    @IBOutlet weak var scrollView: UIScrollView!{
        didSet{
            scrollView.contentSize = imageView.frame.size
            scrollView.delegate = self
            scrollView.minimumZoomScale = 0.03
            scrollView.maximumZoomScale = 1.0
        }
    }
    
    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return imageView
    }
这里完成了Zooming所有该设置的项目,在设置自己为代理时,要在类声明时加上协议,才能自己为自己代理。


即可

你可能感兴趣的:(IOS-笔记12(ScrollView))