UIScrollView 和 UIPageControl 实现启动滑动图

一、使用NSUserDefaults 判断滑动图有没有出现过,加载滑动图

NSUserDefaults 简介:

   NSUserDefaults可以将数据永久的保存在手机中,他是一个单例,用起来很方便,所以很适合用于保存简单的数据和为数据做标记。

更多的关于NSUserDefaults的介绍请看:NSUserDefaults 简介

 你可以选择在AppDelegate.m中的didFinishLaunchingWithOptions 方法或者“初始界面”(加载的第一个viewController)的 viewDidLoad 方法中进行判断滑动图是否出现过,写上代码:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

//判断滑动图是否出现过,第一次调用时“isScrollViewAppear” 这个key 对应的值是nil,会进入if中
    if (![@"YES" isEqualToString:[userDefaults objectForKey:@"isScrollViewAppear"]]) {

        [self showScrollView];//显示滑动图
    }

二、初始化 UIScrollView 和 UIPageControl 为启动滑动图做准备

UIScrollView : 带有滑动效果,在上面加入UIImageView再设置代理后,可以实现翻页显示图片的效果

涉及的相关属性:

contentSize : UIScrollView 显示的尺寸,这个按需求而设

pagingEnabled : 是否支持一页一页的翻,设置成YES后,每一次滑动,翻动一页;

bounces:是否支持反弹,这是一个动画效果,大家可以设置来看看,一般滑动图设置为NO;

showsHorizontalScrollIndicator : 是否显示水平的滑动条

UIPageControl:一般配合UIScrollView使用,指向UIScrollView当前所指的页数

涉及的相关属性:

numberOfPages:一共有几个点(几页),这个要设置得和滑动图的页数一样

相关代码:

#pragma mark - 滑动图

-(void) showScrollView{

    UIScrollView *_scrollView = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds];

      //设置UIScrollView 的显示内容的尺寸,有n张图要显示,就设置 屏幕宽度*n ,这里假设要显示4张图
    _scrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width * 4, [UIScreen mainScreen].bounds.size.height);

    _scrollView.tag = 101;

    //设置翻页效果,不允许反弹,不显示水平滑动条,设置代理为自己
    _scrollView.pagingEnabled = YES;
    _scrollView.bounces = NO;
    _scrollView.showsHorizontalScrollIndicator = NO;
    _scrollView.delegate = self;

    //在UIScrollView 上加入 UIImageView
    for (int i = 0 ; i < 4; i ++) {

        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width * i , 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];

        //将要加载的图片放入imageView 中
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i+1]];
        imageView.image = image;

        [_scrollView addSubview:imageView];
    }

    //初始化 UIPageControl 和 _scrollView 显示在 同一个页面中
    UIPageControl *pageConteol = [[UIPageControl alloc] initWithFrame:CGRectMake(140, self.view.frame.size.height - 60, 50, 40)];
    pageConteol.numberOfPages = 4;//设置pageConteol 的page 和 _scrollView 上的图片一样多
    pageConteol.tag = 201;

    [self.view addSubview:_scrollView];
    [self.view addSubview: pageConteol];
}

三、实现UIScrollView的代理方法

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 介绍:

       顾名思义,这是一个滑动后减速结束的方法,这里进行的是 UIPageControl 和 UIScrollView 的配

套使用、滑动图消失信息等:

涉及到的相关属性:

UIScrollView:

contentOffset : UIScrollView 的偏移量(滑动的位置)

UIPageControl:

currentPage : UIPageControl 的当前页

相关代码:

#pragma mark - UIScrollViewDelegate

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    // 记录scrollView 的当前位置,因为已经设置了分页效果,所以:位置/屏幕大小 = 第几页
    int current = scrollView.contentOffset.x/[UIScreen mainScreen].bounds.size.width;

    //根据scrollView 的位置对page 的当前页赋值
    UIPageControl *page = (UIPageControl *)[self.view viewWithTag:201];
    page.currentPage = current;

    //当显示到最后一页时,让滑动图消失
    if (page.currentPage == 3) {

        //调用方法,使滑动图消失
        [self scrollViewDisappear];
    }
}

四、从屏幕上移除UIScrollView,并保存信息

 这里只需要将UIScrollView和UIPageControl 从主屏幕上移除就可以了,别忘了将启动信息保存到 NSUserDefaults 中,当然你可以设置一些动画效果,或者需要点击才能移除都可以,下面给出的代码是一个简单的动画效果:

代码如下:

-(void)scrollViewDisappear{

    //拿到 view 中的 UIScrollView 和 UIPageControl
    UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:101];
    UIPageControl *page = (UIPageControl *)[self.view viewWithTag:201];

    //设置滑动图消失的动画效果图
    [UIView animateWithDuration:3.0f animations:^{

        scrollView.center = CGPointMake(self.view.frame.size.width/2, 1.5 * self.view.frame.size.height);

    } completion:^(BOOL finished) {

        [scrollView removeFromSuperview];
        [page removeFromSuperview];
    }];

    //将滑动图启动过的信息保存到 NSUserDefaults 中,使得第二次不运行滑动图
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setObject:@"YES" forKey:@"isScrollViewAppear"];
}

这个滑动图代码稍作修改,可以添加定时翻页,相册浏览,点击连接到相应的事件等,原理都是一样的。

时间: 2024-08-01 19:47:01

UIScrollView 和 UIPageControl 实现启动滑动图的相关文章

uiscrollview-为什么我自己将UIScrollView 和 UIPageControl 组合的MyView 不能拖拽

问题描述 为什么我自己将UIScrollView 和 UIPageControl 组合的MyView 不能拖拽 我自定义的MyView (instancetype)initWithImageList:(NSArray*) imgArr andFrame:(CGRect) frame { self = [super init]; self.userInteractionEnabled = YES; if (self) { [self createScrollView:imgArr andFrame

常用软件加密宝典之一:启动加密(图)_漏洞研究

启动加密: 1.BIOS 目前,最简单易行的系统密码当数BIOS密码.设置好BIOS密码后,每次开机进入Windows操作系统前,电脑都先会提示输入BIOS密码,只有正确输入密码后,方能启动进行Winodows系统,如果密码不正确,那么非法闯入者就只能做点开机.关机的操作了. 启动电脑,按下Del键,进入BIOS设置界面(由于主板不同,BIOS的版本和操作界面也不尽相同,用户可参照主板说明书进行设置),选择"BIOS FEATURES SETUP(BIOS特性设置)"后进入子菜单(如图

王野谈莉娜拍MV秀甜蜜全新EP预购启动(组图)

王野宣传照 王野资料图 王野谈莉娜拍MV秀甜蜜 王野谈莉娜拍MV 新浪娱乐讯 万众期盼,2010快男王野全新EP<温暖如野>将于2月25日正式启动预购!上周末王野刚刚完成全新EP另一首主打歌<想为你做的>的MV拍摄,特别邀请2009快女谈莉娜友情出镜,在剧中与王野扮演一对情侣,本该是大秀恩爱的剧情却因为王野没什么演戏经验,反而闹出不少笑话,让拍摄现场爆笑连连! 出演电视剧<一起又看流星雨>.及今年3月即将上映的新剧<落跑甜心>的谈莉娜凭借不俗演技给观众留下深

搜狐企业邮箱代理商年度培训 正式启动(图)

近日,搜狐企业邮箱代理商年度培训正式启动.通过对 合作伙伴在产品理解.http://www.aliyun.com/zixun/aggregation/7487.html">销售技巧.关系维护,组织管理等多方面的培训,提升一线代理商的业务和管理水平.同时加强与渠道的交流和支持,增强搜狐企业邮箱的渠道凝聚力.   搜狐企业邮箱取得的成功与 各地代理商有密切的关系. 所以对于 营销渠道的建设一直是搜狐非常看重的,秉持合作伙伴至上的渠道政策,搜狐一直把合作伙伴成长与利益放在首位.搜狐相当看重代理商

百灵欧拓蓄势GMIC大会 5月5日正式启动(图)

GMIC全球移动互联网大会将于5月5-6日在北京 举行.回顾2013年,中国移动互联网市场呈现爆发式增长,移动互联网市场规模达1059.8亿元,移动网民规模达6.52亿且呈现上升趋势.中国作为全球移动互联市场的重要战略基地,"下一个50亿"作为GMIC大会主题显得意味深长. 百灵欧拓作为国内首家 移动广告平台,此次以钻石赞助商的身份参与GMIC全球移动互联网大会.百灵欧拓依托于百灵时代传媒大鳄,坐拥8个城市17条地铁广告资源.400家院线广告资源.21000台公交等丰富的线下资源以及良

iOS App初次启动时的用户引导页制作实例分享_IOS

      应用程序APP一般都有引导页,引导页可以作为操作指南指导用户熟悉使用:也可以展现给用户,让用户了解APP的功能作用.引导页制作简单,一般只需要一组图片,再把图片组展现出来就可以了.展示图片组常用UIScrollView来分页显示,并且由UIPageControl页面控制器控制显示当前页.UIScrollView和UIPageControl搭配会更加完美地展现引导页的功能作用.下面我们来看具体的实例: 我们用NSUserDefaults类来判断程序是不是第一次启动或是否更新,在 App

Win8.1滑动关机新玩法

  在Win8.1系统中,启动滑动关机功能无需修改注册表,只需要借助Win8.1系统中内置的"SlideToShutDown"程序即可.首先我们通过在系统盘路径中找到该文件:X:WindowsSystem32文件夹中即可找到SlideToShutDown.exe文件,SlideToShutDown人如其名就是通过滑动来关机的意思. 图2 微软Win8.1隐藏的滑动关机程序文件 上面我们认识到Win8.1系统中原来隐藏此项功能程序,下面我们就要好好的利用微软隐藏起来的功能.在系统传统桌面

Win8.1快速关机!Win8.1滑动关机方法

在Win8.1系统中,启动滑动关机功能无需修改注册表,只需要借助Win8.1系统中内置的"SlideToShutDown"程序即可.首先我们通过在系统盘路径中找到该文件:X:WindowsSystem32文件夹中即可找到SlideToShutDown.exe文件,SlideToShutDown人如其名就是通过滑动来关机的意思. 图2 微软Win8.1隐藏的滑动关机程序文件 上面我们认识到Win8.1系统中原来隐藏此项功能程序,下面我们就要好好的利用微软隐藏起来的功能.在系统传统桌面或者

美图秀秀设计分析:在Android,iPhone上的交互设计

文章描述:只是自己对于美图秀秀这款产品在设计上的一些想法,权当抛砖引玉,还请指点. 出于职业习惯,使用一款产品时总会不自觉地对其设计进行分析.当打开美图秀秀时,我知道,我又开始了. 美图秀秀是厦门美图科技有限公司旗下的一款产品,分别有 PC 客户端, Android, iPhone 应用.公司旗下还有其它几款产品:美图看看--免费看图软件,美图拍拍--摄像头自拍软件,美图淘淘--网店图片批理处理软件,美图化妆秀--强大的上妆软件.个人非常看好美图淘淘,依托淘宝这个大平台,它为广大淘宝店家们解决了