当前位置: 移动技术网 > 移动技术>移动开发>IOS > iOS开发从入门到精通-- 滚动视图UIScrollView高级,协议。

iOS开发从入门到精通-- 滚动视图UIScrollView高级,协议。

2018年12月26日  | 移动技术网移动技术  | 我要评论

滚动视图uiscrollview高级,协议。

#import 

@interface viewcontroller : uiviewcontroller{//协议函数

    //定义一个滚动视图成员变量
    uiscrollview * _scrollview;
}

@end
#import "viewcontroller.h"

@interface viewcontroller ()

@end

@implementation viewcontroller

- (void)viewdidload {
    [super viewdidload];
    // do any additional setup after loading the view, typically from a nib.

    //创建滚动视图
    _scrollview =[[uiscrollview alloc]init];

    //设定滚动视图的位置
    _scrollview.frame=cgrectmake(10, 50, 300, 400);

    //取消弹动效果
    _scrollview.bounces=no;

    //是否允许通过点击屏幕让滚动视图响应事件
    //yes:滚动视图可以接受触碰事件
    //no:不接受触碰事件
//    _scrollview.userinteractionenabled=no;
     _scrollview.userinteractionenabled=yes;

    //设置画布的大小,纵向效果
    _scrollview.contentsize=cgsizemake(300, 400*9);

    for(int i=0;i<10;i++){
        //生成图片名称
        nsstring* strname =[nsstring stringwithformat:@"17_%d.png",i+1];
        uiimage *image = [uiimage imagenamed:strname];
        //创建图像视图对象
        uiimageview * iview = [[uiimageview alloc]init];
        //图像赋值
        iview.image=image;
        //设置图像视图在滚动视图画布中的位置
        iview.frame=cgrectmake(0, 400*i, 300, 400);
        [_scrollview addsubview:iview];

    }

    [self.view addsubview:_scrollview];

    //取消按页滚动效果
    _scrollview.pagingenabled=no;
//    _scrollview.pagingenabled=yes;

    //滚动视图画布的移动位置,偏移位置
    //功能:决定画布显示的最终图像结果
    _scrollview.contentoffset=cgpointmake(0,0);

    //当前视图控制器作为代理对象
    _scrollview.delegate=self;
}

-(void) touchesbegan:(nsset *)touches withevent:(uievent *)event{
//    _scrollview.contentoffset=cgpointmake(0, 0);//点击空白处,直接跳到设定的坐标位置
    //让滚动视图移动到指定位置,动画移动
    [_scrollview scrollrecttovisible:cgrectmake(0, 0, 300, 400) animated:yes];
}

//当滚动视图移动时,只要offset坐标发生变化,都会调用此函数
//参数:调用此协议的滚动视图对象
//可以使用此函数来监控滚动视图的位置
- (void) scrollviewdidscroll:(uiscrollview *)scrollview{

    nslog(@"y=%f",scrollview.contentoffset.y);
}

//当滚动视图结束拖动时调用此函数
- (void) scrollviewdidenddragging:(uiscrollview *)scrollview willdecelerate:(bool)decelerate{
    nslog(@"did end drag");
}

//滚动视图即将开始被拖动时
-(void) scrollviewwillbegindragging:(uiscrollview *)scrollview{
    nslog(@"willbegindrag");
}

//视图即将结束拖动时调用
-(void) scrollviewwillenddragging:(uiscrollview *)scrollview withvelocity:(cgpoint)velocity targetcontentoffset:(inout cgpoint *)targetcontentoffset{
    nslog(@"will end drag");
}

//视图即将减速时调用
-(void) scrollviewwillbegindecelerating:(uiscrollview *)scrollview{
    nslog(@"will begin decelerating");
}

//视图已经结束减速时调用,视图停止的瞬间调用
-(void) scrollviewdidenddecelerating:(uiscrollview *)scrollview{
    nslog(@"视图停止移动");
}

- (void)didreceivememorywarning {
    [super didreceivememorywarning];
    // dispose of any resources that can be recreated.
}

@end

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网