iOS--应用首次启动的引导页
来源:互联网 发布:好看的网络剧穿越剧 编辑:程序博客网 时间:2024/06/06 02:27
昨天,弄了一早上和半个下午的Source Tree,网速成为了阻止我前进的最大障碍,果然想起了前段时间看到一篇文章(主要讲到程序员的装备),其中有一项就是高速的网络环境,经过昨天,深深体会到这句话。
好了,扯远了,回来。昨天下午网上无意间看到了某大虾的引导页的分享,想着前段时间做的项目也又一个引导页的模块,之前做得不太满意,就想着再自己学习下实现方法。示例链接:https://github.com/gaussli/SlideStartUpTest
建立项目导入图片神马的就不说了,看看MainViewController.h。
1. 由于是首次启动的引导页,所以第二次打开的时候就不应该再显示了,于是我把是否第一次打开的标识位放在了NSUserDefaults中。
// 获得滑动图是否出现过标识位,出现过就不再出现,没出现过证明应用第一次打开,同时打开滑动图 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; if (![@"YES" isEqualToString:[userDefaults objectForKey:@"isShowScrollView"]]) { [self showScrollView]; } else { NSLog(@"滑动图已经出现过,进行其他操作。"); }
2. 引导页我是使用UIScrollView来展示图片,使用UIPageControl来显示当前是第几页。
其中需要设置UIScrollView的几个属性:
a. contentSize:设置UIScrollView的大小,包含所有的引导图,本示例中共5张,所以宽度width为5倍的屏幕宽,高度为屏幕高
b. pagingEnabled:设置翻页的效果,如果不设置的话,不能做成一页页翻的效果,只能连续滚动
c. bounces:设置是否允许反弹,这个属性为NO的时候,当滚动到UIScrollView边缘的时候不会出现反弹的动画效果,YES的时候,则会出现反弹效果。这个属性看个人意愿,想多点动画效果,就设置为YES,反之为NO。(默认值为YES)
d. showsHorizontalScrollIndicator:设置是否显示水平滚动条,在本示例中,由于是启动引导页,不应该有水平滚动页,所以设置为NO
// 初始化scrollView UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 根据图片张数确定scrollView的大小位置,这里有5张图片,长度为屏幕宽度*5 scrollView.contentSize = CGSizeMake(JH_DEVICE_WIDTH*5, JH_DEVICE_HEIGHT); scrollView.tag = 101; // 设置翻页效果,为一页一页翻 scrollView.pagingEnabled = YES; // 设置不允许反弹 scrollView.bounces = NO; // 设置不显示水平滑动条 scrollView.showsHorizontalScrollIndicator = NO; // 设置代理为自身 scrollView.delegate = self;
// 把图片加入到scrollView中 UIImageView *imageView1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"wm.png"]]; imageView1.frame = CGRectMake(0, 0, JH_DEVICE_WIDTH, JH_DEVICE_HEIGHT); [scrollView addSubview:imageView1];
// 初始化pageControl UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(140, JH_DEVICE_HEIGHT - 60, 50, 40)]; pageControl.numberOfPages = 5; pageControl.tag = 201;
至此,页面的初始化已经完成,接下来进行UIScrollView的代理设置。
5. 实现- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView,这是当滑动减速到结束时回调的代理,在这里面设置UIPageControl显示的页数
// 获得当前位置,确定展示第几张图片 int currentNum = scrollView.contentOffset.x / JH_DEVICE_WIDTH; // 设置pageControl当前值 UIPageControl *tempPageControl = (UIPageControl*)[self.view viewWithTag:201]; tempPageControl.currentPage = currentNum;
// 获得当前位置,确定展示第几张图片 int currentNum = scrollView.contentOffset.x / JH_DEVICE_WIDTH; // 最后一张开始滑动的时候,进行图片消失动画 if (currentNum == 4) { [self destroyScrollView]; }
- (void) destroyScrollView { // 获得scrollView和pageControl UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:101]; UIPageControl *page = (UIPageControl *)[self.view viewWithTag:201]; // 设置滑动图消失的动画效果 [UIView animateWithDuration:1.5f animations:^{ scrollView.center = CGPointMake(-JH_DEVICE_WIDTH/2, JH_DEVICE_HEIGHT/2); } completion:^(BOOL finished) { [scrollView removeFromSuperview]; [page removeFromSuperview]; }]; //将滑动图启动过的信息保存到 NSUserDefaults 中,使得第二次不运行滑动图 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:@"YES" forKey:@"isScrollViewAppear"];}
- iOS--应用首次启动的引导页
- iOS 开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发笔记--应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发笔记--应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导 - 疯狂的萝卜 - 博客园
- app首次启动的引导页,及延时操作
- iOS判断应用是否首次启动
- iOS启动引导页
- android实现首次启动引导
- Roast Turkey with Pepperoni
- Web应用程序中提交表单处理时GIF停止
- nodejs linux下配置oracle支持
- ASMCMD使用cp报错:ora-15046
- POJ-1949(DAG最长路径)
- iOS--应用首次启动的引导页
- jquery 获得星期几
- duilib list控件扩展
- 解决IE浏览器部分版本不支持background-size属性问题
- 比较Maven和Ant
- jdbc连接数据库的几个步骤
- c++游戏设计二:反转扑克牌
- Linux与Android
- 第14周项目4-电子词典