UIScrollView基本使用(一)

来源:互联网 发布:卸载mac上的软件 编辑:程序博客网 时间:2024/05/06 02:56

今天这种日子还在写代码的,一定是真爱。好吧我承认闲的无聊。下面讲一讲UIScrollView的基本使用。

使用场景:一般当手机屏幕不能完全显示需要展示的内容的时候,就会考虑使用UIScrollView了。
                  可以通过拖拽将屏幕外的内容显示出来。

1.使用前要知道几个属性的含义:
(1)CGSize  contentSize:这个属性代表可以滚动的区域大小。
(2)UIEdgeInsets  contentInset:这个属性可以设置scrollView距离屏幕上左下右的距离。
(3)BOOL  bounces: 设为YES可以有回弹效果
  (4)   BOOL  < showsVerticalScrollIndicator:显示垂直滚动条
                      <showsHorizontalScrollIndicator:显示水平滚动条

2.UIScrollViewDelegate的几个代理方法也要知道以下
   (1)-(void)scrollViewDidScroll:(UIScrollView *)scrollView; //scrollview正在滚动时会触发
   (2)-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;//scrollView将要开始拖拽时会触发
   (3)-(void)scrollViewDidEndDragging:(UIScrollView *)scrolView  willDecelerate:(BOOL)decelerate;//scrollview结束拖拽的时候会触发
   (4)-(void)scrollViewWillBeginDecelerating:(UIscrollView *)scrollView;//scrollView将要开始减速滚动的时候会触发

3.下面我们一起来看一个简单的实例体会一下:
#import "ViewController.h"@interface ViewController ()<UIScrollViewDelegate>@property(nonatomic,strong)UIScrollView *scrolView;@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    UIImageView *imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"111"]];    self.scrolView=[[UIScrollView alloc]initWithFrame:self.view.bounds];        //1.设置UIScrollView的contentSize属性,代表可以滚动的区域大小    self.scrolView.contentSize=imageView.bounds.size;    //self.scrolView.contentSize=CGSizeMake(self.view.frame.size.width, imageView.frame.size.height);    //2. 设置UIEdgeInsets(距离上左下右的距离)    self.scrolView.contentInset=UIEdgeInsetsMake(20, 10, 10, 10);    //3.设置indicator的insets    self.scrolView.scrollIndicatorInsets=UIEdgeInsetsMake(0, 0, 0, 10);    //4.设置不能回弹效果    self.scrolView.bounces=NO;    //    [self.scrolView setBounces:NO];    //3.在UIScrollView中添加子View    [self.scrolView addSubview:imageView];            [self.view addSubview:self.scrolView];    self.scrolView.delegate=self;}#pragma mark -UIScrollViewDelegate//scrollView正在滚动-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    NSLog(@"scrollViewDidScroll");}//scrollView将要开始拖拽-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{    NSLog(@"scrollViewWillBeginDragging");}//scrollview结束拖拽-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{    NSLog(@"scrollViewDidEndDragging");}//scrollView将要开始减速滚动-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{    NSLog(@"scrollViewWillBeginDecelerating");}-(BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{    return YES;}@end

程序运行后,稍微拖动一下后打印效果是:

很明显,代理触发的先后顺序是:将要拖拽-》开始滚动-》因为就拖拽了一下,所以滚动一小会后就会触发结束拖拽代理-》一旦结束拖拽,scrollView的滚动就会变慢,触发将要开始减速滚动代理-》虽然减速滚动,但是还是在滚动,所以还是会触发scrollDidScroll代理。(PS:也可以试试看拖拽的时候不松开的效果)

4.拖拽后的效果图如下:


注意一地啊,就是垂直滚动条是被设置了距离右边10间距的。对于一些属性的实际效果大家可以自行试试看。
1 0