牛骨文教育服务平台(让学习变的简单)

UIScrollView控件详解

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //  创建一个滚动视图
    self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 64, 320, 568-64)];
    //  设置代理
    self.scrollView.delegate = self;
    self.scrollView.backgroundColor = [UIColor redColor];
    [self.view addSubview:_scrollView];
    /**
     *  CGPoint contentOffSet                       监控目前滚动的位置
     *  CGSize contentSize                          滚动范围大小(主属性)
     *  UIEdgeInsets contentInset                   视图在scrollView中的位置
     *  BOOL directionalLockEnabled	                指定控件是否只能在一个方向上滚动
     *  BOOL bounces	                            控制控件遇到边框是否反弹
     *  BOOL alwaysBounceVertical	                控制垂直方向遇到边框是否反弹
     *  BOOL alwaysBounceHorizontal	                控制水平方向遇到边框是否反弹
     *  BOOL pagingEnabled	                        控制控件是否整页翻动
     *  BOOL scrollEnabled	                        控制控件是否能滚动
     *  BOOL showsHorizontalScrollIndicator	        控制是否显示水平方向的滚动条
     *  BOOL showsVerticalScrollIndicator	        控制是否显示垂直方向的滚动条
     *  UIEdgeInsets scrollIndicatorInsets	        指定滚动条在scrollerView中的位置
     *  UIScrollViewIndicatorStyle indicatorStyle	设定滚动条的样式
     *  float decelerationRate	                    改变scrollerView的减速点位置
     *  BOOL tracking	                            监控当前目标是否正在被跟踪
     *  BOOL dragging	                            监控当前目标是否正在被拖拽
     *  BOOL decelerating	                        监控当前目标是否正在减速
     *  BOOL delaysContentTouches	                控制视图是否延时调用开始滚动的方法
     *  BOOL canCancelContentTouches	            控制控件是否接触取消touch的事件
     *  float minimumZoomScale	                    缩放的最小比例
     *  float maximumZoomScale	                    缩放的最大比例
     *  float zoomScale	                            设置变化比例
     *  BOOL bouncesZoom	                        控制缩放的时候是否会反弹
     *  BOOL zooming	                            判断控件的大小是否正在改变
     *  BOOL zoomBouncing	                        判断是否正在进行缩放反弹
     *  BOOL scrollsToTop	                        控制控件滚动到顶部
     */
    
    //  提示用户,在界面创建的时候,水平滚动条或者垂直滚动条会出现一次闪现效果
    [self.scrollView flashScrollIndicators];
    //  偏移带动画效果
    [self.scrollView setContentOffset:CGPointMake(320, 0) animated:YES];
    
}

#pragma mark UIScrollViewDelegate
//  只要滚动了就会触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
    
    
}

//  开始拖拽视图
// 当开始滚动视图时,执行该方法。一次有效滑动(开始滑动,滑动一小段距离,只要手指不松开,只算一次滑动),只执行一次。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
{
    
}

// 滑动视图,当手指离开屏幕那一霎那,调用该方法。一次有效滑动,只执行一次。
// decelerate,指代,当我们手指离开那一瞬后,视图是否还将继续向前滚动(一段距离),经过测试,decelerate=YES
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
{
    
}

//  将开始降速时
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
{
    
}

// 滚动视图减速完成,滚动将停止时,调用该方法。一次有效滑动,只执行一次。
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
{
    
}

//  滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
// 当滚动视图动画完成后,调用该方法,如果没有动画,那么该方法将不被调用
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
{
    
}

//  设置放大缩小的视图,要是uiscrollview的subview , 返回将要缩放的UIView对象。要执行多次
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
{
    
    return nil;
}

// 当将要开始缩放时,执行该方法。一次有效缩放,就只执行一次。
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view 
{
    NSLog(@"scrollViewWillBeginZooming");
}

// 当缩放结束后,并且缩放大小回到minimumZoomScale与maximumZoomScale之间后(我们也许会超出缩放范围),调用该方法。
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(double)scale;
{
    
}

//  如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
{

    return YES;
}

//  已经滑动到顶部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
{
   
}