• iOS笔记之UIKit_UIScrollView


        //通过系统的一个接口 拿到是不是第一次启动这个程序 如果是就调用导航页 如果不是 直接进入下一个视图

        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

        if([userDefaults objectForKey:@"FirstLoad"] == nil)

        {

            [userDefaults setBool:NO forKey:@"FirstLoad"];

            //显示导航页

            NSLog(@"显示导航页");

            view.isFirstLoad = YES;

        }

        else

        {

            NSLog(@"不是第一次启动 不再显示");

            view.isFirstLoad = NO;

       }

    -(void)welcome{

          if (self.isFirstLoad==YES) {

            //如果是第一次启动 调用引导页

            [self creatView];

        }

    }

    #pragma mark - 创建滚动视图

    -(void)createUIScrollView

    {

        //实例化滚动视图

        self.scrollView = [[UIScrollView alloc] init];

        //位置和大小

        self.scrollView.frame = CGRectMake(0, 0,320, 568);

        //设置滚动视图的滚动范围

        self.scrollView.contentSize =CGSizeMake(SCROLL_W*6, SCROLL_H);

        //设置是否开启分页显示

        self.scrollView.pagingEnabled = YES;

        //设置拖拽的弹簧效果

        self.scrollView.bounces =NO;

        //设置委托

        self.scrollView.delegate = self;

        //添加到父视图上

        [self.view addSubview:self.scrollView];

        

        //载入图片

        for(int i = 0 ; i < 6 ; i++)

        {

            //UIImageView显示图片

            UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]]];

            //设置每一个imgView的frame

            imgView.frame = CGRectMake(SCROLL_W*i , 0, SCROLL_W, SCROLL_H);

            //把imgView添加到scrollView上

            [self.scrollView addSubview:imgView];

          //设置label显示滚动到哪一个视图

            self.titleLabel = [[UILabel alloc]init];

            self.titleLabel.text = [NSString stringWithFormat:@"%d",i];

            self.titleLabel.frame = CGRectMake(0, 24, 320, 30);

            self.titleLabel.backgroundColor = [UIColor redColor];

             self.titleLabel.font = [UIFont systemFontOfSize:20];

            self.titleLabel.textAlignment =  NSTextAlignmentCenter;

            self.titleLabel.layer.cornerRadius = 7;

            self.titleLabel.alpha = 0.5;

             [imgView addSubview:self.titleLabel];

        }

    }

    #pragma mark - 拿到当前滚动视图页码

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView

    {

        NSLog(@"%f",scrollView.contentOffset.x);

        //只要大于960即可跳转

        if(scrollView.contentOffset.x > 960)

        {

            //跳转了

            TRSubViewController *svc = [[TRSubViewController alloc] initWithNibName:@"TRSubViewController" bundle:nil];

            [self presentViewController:svc animated:YES completion:nil];

        }

    }

    #pragma mark - 载入视图

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        [self createUIScrollView];

    }

    #pragma mark - 状态监测的方法

    //用户手指在屏幕上向某个方向上拖动

    -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

    {

        NSLog(@"水平或竖直方向上拖动");

    }

    //当用户抬起拖动的手指时调用该方法

    -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

    {

        //告知一个BOOL类型的值,告诉你滚动视图最后的位置前,是否需要减速。

        NSLog(@"拖动结束");

    }

    //完成缩放

    -(void)scrollViewDidZoom:(UIScrollView *)scrollView

    {

        NSLog(@"完成缩放");

    }

    //就是当用户的手指已经从屏幕上移开而视图需要继续

    //移动时调用这个方法。contentoffset属性 能够拿到

    //用户手指抬起前 最后一次滚动的位置。

    -(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

    {

        NSLog(@"将要停止的时候调用");

    }

    //当滚动视图停止滚动了得到一个通知。滚动视图就用

    //用contentOffset属性 反映出滚动视图的最终的位置。

    -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    {

        NSLog(@"offset.x = %f",scrollView.contentOffset.x);

    }

    //会在滚动视图开始滚动的时候调用。从scrollView读取contentoffset 确定滚动视图滚动到位置。

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView

    {

         NSLog(@"offset.x = %f",scrollView.contentOffset.x);

    }

    -(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView

    {

        NSLog(@"滚动到头");

    }

  • 相关阅读:
    Java的多线程机制系列:(二)缓存一致性和CAS
    Java的多线程机制系列:(一)总述及基础概念
    pydev常用快捷键
    利用python的pyinotify模块监控文件夹和文件的变动
    Linux 下文件名乱码(无效的编码)的解决办法
    ubuntu 中文界面下中文文件夹改英文
    SystemParametersInfo
    jsp:forward与缓冲区
    kafka:(9) 流式处理
    kafka:(8) 事务、幂等
  • 原文地址:https://www.cnblogs.com/mapanguan/p/4149855.html
Copyright © 2020-2023  润新知