UIScrollView的介绍及使用:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIScrollView的介绍及使用:相关的知识,希望对你有一定的参考价值。
UIScrollView 是一个滚动视图
我们手机的屏幕尺寸有限,当我们想要显示一个大的图片的时候我们需要用到这个控件
可以在有限的屏幕中显示更多的内容
1, 如何使用 UIScrollView 滚动
1> 拖入一个 UIScrollView 控件
2> 给控件添加内容
3> 设置 contentSize 说明可以滚动的范围
2.UIScrollView 的常见属性
1>contentSize 设置滚动的范围
2>scrollEnabled 设置图片是否滚动
3>userInteractionEnabled 设置用户交互
4>contentOffset 凡是看到offset 就是指的偏移, 需要让内容移动到想要的地方,就需要使用偏移值注意的是.改偏移可以看到是距离可以使用代码来控制内容的滚动
5>contentInset 是一个结构题,表示content的内边距.contentInset 不参与 offset 的计算
6> bounces 设置弹簧效果
7> showHorizontalScrollIndicater 设置水平滚动条
8> showVerticalScrollIndicater 设置垂直滚动条
1 //Contentoffset 有一个动画的的方法 2 [self.scrollView setContentOffset:偏移的距离,如果宽和高等于UIScrollView的宽和高,可以用0带代替 animated:是否动画]
3.UIScrollView的代理方法:
1 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { 2 // 这个方法是 只要 UIScrollView 一滚动, 就会调用的方法 3 } 4 5 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 6 // 开始拖拽的时候调用, 强调开始 7 } 8 9 - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { 10 // 手指抬起就调用 11 } 12 13 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { 14 // 手指抬起就调用 15 } 16 17 - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { 18 // 如果手指抬起的时候, scrollView 还在因为惯性移动, 这个方法才会调用 19 } 20 21 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 22 // 在手指移动后, 由于惯性停下时 才会被调用. 如果手指移开的时候没有惯性, 这个方法也不会调用 23 } 24 25 - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { 26 // 使用 setContentOffSet: animated: 方法, 有动画的时候, 动画结束时 调用, 否则不会调用 27 } 28 29 状态栏 必须显示 30 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView { 31 // 点击状态栏, scrollView 会自动滚动到开始的位置, 如果返回 NO 则没有响应 32 默认情况下是YES 33 return NO; 34 } 35 36 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView { 37 // 在滚动到顶端后调用 38 } 39 40 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { 41 // 在滚动的时候调用 42 }
4.设置图片的缩放:
// 放大图片 // 1, 设置放大的倍数 zoom // minimun 最小 // maximun 最大 //设置最大的倍数 self.scrollView.maximumZoomScale = 10; //设置最小的倍数 self.scrollView.minimumZoomScale = 1; //这个方法是告诉我要缩放的是那一个控件 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return [scrollView viewWithTag:1024]; }
5.页码的常见属性:
1 //设置总页数 2 self.pageControl.numberOfPages = self.imgCount; 3 //设置从哪里开始 4 self.pageControl.currentPage = 0; 5 // 设置当前页码的颜色 6 self.pageControl.pageIndicatorTintColor = [UIColor blueColor]; 7 //设置其他页码的颜色 8 self.pageControl.currentPageIndicatorTintColor = [UIColor redColor]; 9 10 //记录当前ScrollView的宽度 11 scrollView.contentOffset.x 12 //计算当图片滚动一半多一点的时候就让页码跳到下一个 13 NSInteger pageIndex = (scrollView.contentOffset.x + scrollView.bounds.size.width / 2) / scrollView.bounds.size.width;
简单的判断语句,可以用三目运算符实现.在三目运算符的时候,不要用++ 用+1就好了
1 pageIndex = pageIndex == self.imgCount - 1 ? 0 : pageIndex + 1;
6.控制图片的自动滚动:
需要设置一个计时器,让页面自动的滚动 setContentOffset: animated:
计时器一旦创建,就会一直执行,如果想让他停止就必须销毁他,如果想让执行就在创建一个
1 //开启计时器: 2 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:时间 target:操作谁 selector:要操作的方法 userInfo:传递参数 repeats:是否重复]; 3 //停止计时器 4 [timer incaledate];
每一个程序的执行都是像在画画一样,如果同时让他执行两个线程的话,他会先去执行主要的线程,我们之前的那个线程就会停止,所以我们改变一下他的运行循环
1 //修改 计时器执行代码的模式 2 // 获得主运行循环 3 NSRunLoop *runloop = [NSRunLoop mainRunLoop]; 4 [runloop addTimer:self.timer forMode:NSRunLoopCommonModes]; 5 6 NSDefaultRunLoopMode 默认的情况下啊 7 NSRunLoopCommonModes 获得主运行循环
以上是关于UIScrollView的介绍及使用:的主要内容,如果未能解决你的问题,请参考以下文章