您的位置:首页 > 产品设计 > UI/UE

IOS--UIScrollView delegate 协议-

2013-08-08 17:17 381 查看
以下为该协议的相关方法:

- (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");

    //    if (scrollView.contentOffset.x <= 110) {

    //        [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];

    //        [ApplicationDelegate setPlayIndex:0];

    //        return;

    //    }

    //    if (scrollView.contentOffset.x > ( 110 + 210 * (ApplicationDelegate.programCount-2)))

    //    {

    //        [scrollView setContentOffset:CGPointMake(210 + 210 * (ApplicationDelegate.programCount-2), 0) animated:YES];

    //        [ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];

    //        return;

    //    }

    

    

    
   
for(int i =
0 ; i < ApplicationDelegate.programCount-2 ; i++){

        
       
if (scrollView.contentOffset.x > (110 + i *
210) && scrollView.contentOffset.x <= (
110 + 210 * (i+1)))
        {
            [scrollView setContentOffset:CGPointMake(210 +
210 * i, 0) animated:YES];
            [ApplicationDelegate setPlayIndex:i+1];
            NSLog(@"%d" , i);
           
//return;
        }
    }
}

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

    NSLog(@"scrollViewWillBeginDecelerating");

    
}

//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
{

    NSLog(@"scrollViewDidEndDecelerating");
   
if (scrollView.contentOffset.x <=
110) {
        [scrollView setContentOffset:CGPointMake(0,
0) animated:YES];
        [ApplicationDelegate setPlayIndex:0];
       
return;
    }
   
if (scrollView.contentOffset.x > (
110 + 210 * (ApplicationDelegate.programCount-2)))
    {
        [scrollView setContentOffset:CGPointMake(210 +
210 * (ApplicationDelegate.programCount-2),
0) animated:YES];
        [ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];
        NSLog(@"over");
       
return;
    }

    
   
for(int i =
0 ; i < ApplicationDelegate.programCount-2 ; i++){

        
       
if (scrollView.contentOffset.x > (110 + i *
210) && scrollView.contentOffset.x <= (
110 + 210 * (i+1)))
        {
            [scrollView setContentOffset:CGPointMake(210 +
210 * i, 0) animated:YES];
            [ApplicationDelegate setPlayIndex:i+1];
           
//return;
        }
    }

    
}

//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
{

    NSLog(@"scrollViewDidEndScrollingAnimation");
}

//设置放大缩小的视图,要是uiscrollview的subview
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
{

    NSLog(@"viewForZoomingInScrollView");

    return
nil;
}

//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;
{

    

    NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");

}// 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");
}

注意还要对使用的ScrollView进行属性设置

// scrollView的
长  宽
设置
self.programScrollView.contentSize=CGSizeMake(ApplicationDelegate.programCount *
210+10 ,
40);

// 是否分页显示
self.programScrollView.pagingEnabled=NO;

//协议
self.programScrollView.delegate=self;

// 监听手指动作
self.programScrollView.canCancelContentTouches=NO;

//延迟手指动作
self.programScrollView.delaysContentTouches=YES;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UIScrollView delegat