多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> 原文:http://www.swiftyper.com/Swift/scrollviewpart3.html # ScrollView 学习笔记 - Part3 `ScrollView`的第二个基本功能就是“缩放”。 要实现缩放也很简单,只需要两个步骤: ## 实现委托 要实现缩放,需要实现 ~~~ viewForZoomingInScrollView: ~~~ 这个委托方法,在这个方法中返回需要进行缩放的`ScrollView`的子视图。 ## 设置缩放级别 设置缩放的最大和最小级别: ~~~ scrollView.minimumZoomScale = 0.1 scrollView.maximumZoomScale = 3.0 scrollView.zoomScale = 1.0 ~~~ 只要以上两个步骤就可以实现缩放了,不过,如果只是单纯设置了最小缩放级别,可能会由于缩放得太小,导致屏幕有很多的空白十分难看。所以,我们最好根据`ScrollView`的大小来计算出最小的缩放级别。 ~~~ private func setZoomParamatersForSize(scrollViewSize: CGSize) { let imageSize = imageView.bounds.size let widthScale = scrollViewSize.width / imageSize.width let heightScale = scrollViewSize.height / imageSize.height let minScale = min(widthScale, heightScale) scrollView.minimumZoomScale = minScale scrollView.maximumZoomScale = 3.0 scrollView.zoomScale = minScale } ~~~ 同时,为了保证在屏幕方向变化的时候,缩放级别也能改变,还得实现这个方法: ~~~ override func viewWillLayoutSubviews() { setZoomParamatersForSize(scrollView.bounds.size) } ~~~ ## 其它委托方法 除了`viewForZoomingInScrollView:`,在`ScrollView`的委托方法中,还有两个与缩放有关: ~~~ scrollViewDidZoom: scrollViewDidEndZooming:
 ~~~ ## 总结 在`ScrollView`当中,实现缩放也是相当容易的,主要还是设置缩放级别来适应`ScrollView`这点比较重要,其它都是很直观的。