UI控件之一:UIScrollView

基本的UI控件是iOS入门必备,即使是老司机也可以温故而知新。

1、UIScrollView的常见属性

- (void)viewDidLoad
{
    [super viewDidLoad];
    scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
    scrollView.backgroundColor = [UIColor redColor];
    // 是否支持滑动最顶端
    scrollView.scrollsToTop = NO;
    scrollView.delegate = self;
    // 设置内容大小
    scrollView.contentSize = CGSizeMake(320, 460*10);
    // 是否反弹
    scrollView.bounces = NO;
    // 是否分页
    scrollView.pagingEnabled = YES;
    // 是否滚动
    scrollView.scrollEnabled = NO;
    scrollView.showsHorizontalScrollIndicator = NO;
    // 设置indicator风格
    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    // 设置内容的边缘和Indicators边缘
    scrollView.contentInset = UIEdgeInsetsMake(0, 50, 50, 0);
    scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 50, 0, 0);
    // 提示用户,Indicators flash
    [scrollView flashScrollIndicators];
    // 是否同时运动,lock
    scrollView.directionalLockEnabled = YES;
    [self.view addSubview:scrollView];
    
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 200, 320, 40)];
    label.backgroundColor = [UIColor yellowColor];
    label.text = @"学习scrolleview";
    [scrollView addSubview:label];
}

2、UIScrollView的代理方法

#pragma mark UIScrollViewDelegate  
//只要滚动了就会触发  
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;     
{  
    NSLog(@" scrollViewDidScroll");  
    NSLog(@"ContentOffset  x is  %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);  
}  
//开始拖拽视图  
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;     
{  
   NSLog(@"scrollViewWillBeginDragging");  
}  
//完成拖拽  
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;   
{  
   NSLog(@"scrollViewDidEndDragging");  
}  
//将开始降速时  
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;     
{  
   NSLog(@"scrollViewWillBeginDecelerating");  
}  

//减速停止了时执行,手触摸时执行 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;     
{  
   NSLog(@"scrollViewDidEndDecelerating");  
}  
//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时  
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;  
{  
   NSLog(@"scrollViewDidEndScrollingAnimation");  
}  
//设置放大缩小的视图,要是uiscrollview的subview  
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;     
{  
   NSLog(@"viewForZoomingInScrollView");  
   return viewA;  
}  
//完成放大缩小时调用  
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;   
{  
   viewA.frame=CGRectMake(50,0,100,400);  
   NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");  
}
//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它  
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;     
{  
   NSLog(@"scrollViewShouldScrollToTop");  
   return YES;  
}  
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;       
{  
   NSLog(@"scrollViewDidScrollToTop");  
}

你可能感兴趣的:(UI控件之一:UIScrollView)