通过学习UIScrollView,对其有所了解,今天简单介绍一下UIScrollView的简单用法以及需要注意的事项。
原理:
用UIScrollView来实现图片的的浏览、图片的缩放功能相对简单一点,因为UIScrollView是滚动视图,也就意味着,我可以将很多图片放在UIScrollView视图内,来实现图片的浏览功能。UIPageControl可以显示当前为第几张图片,UIScrollView 还可以对其显示的内容进行缩放,从而可以实现图片的缩放功能。
UIScrollView 创建的过程非常简单。
注意点:1
// 整屏翻动
_scroll.pagingEnabled = YES;
_scroll.tag = 10; //要设置一个tag值,后边要用到
要注意pagingEnabled 这个属性,默认为NO,如果不开启的画,图片之间切换不是整屏翻动的,而是你滑动多少,图片就移动多少。
注意点:2
UIScrollView 内的子视图要为UIScrollView类型,不要直接将UIImageView放在UIScrollView上,这样会造成的后果是,对一张图片进行缩放时,所有的图片都会跟着一起缩放。我之前提到过,UIScrollView是对它的显示内容进行缩放,而不是当前屏幕显示的内容进行缩放。图片都在UIScrollView上, 都是它的内容,所有都跟着一起缩放。
那么如何来解决这个问题呢?我们还是需要对UIScrollView的缩放原理仔细的想一想, 我们可以把UIImageView放在UIScrollView上,在将这个UIScrollView作为一个子视图,放入一个大的UIScrollView上,这样,每张图片就独立了,操作子UIScrollView时不会影响到其他的视图。
注意点:3
创建子UIScrollView视图 要设置 minimumZoomScale maximumZoomScale 的值。
每个子视图都要设置一个tag值。
注意点:4
要对子视图进行缩放,必须要遵循UIScrollViewDelegate协议,并且设置代理人,否则不会自动调用- (void)scrollViewDidScroll:(UIScrollView *)scrollView 方法,这个方法里要对UIPageControl 的当前页面setCurrentPage:进行设置。与图片同步滑动。
注意点:5
- (void)scrollViewDidScroll:(UIScrollView *)scrollView里,通过tag来判断当前显示的是哪一个子视图,如果tag == 10,就根据当前页面偏移量,设置UIPageControl 的当前页面。
注意点:6
- (void)pageControlAction 方法里,根据currentPage 改变UIScrollView 的偏移量,实现UIPageControl 的页面改变,图片也跟着变。