用户引导页--- ScrollView的使用
一、首先第一步,写好用户轮播页的viewController,比如叫做LVUserGuideVC,关键代码是配置和scrollView和pageControl。
(1)scrollView的设置
self.scrollView.delegate = self;
self.scrollView.backgroundColor = [UIColor clearColor];
self.scrollView.pagingEnabled = YES;
self.scrollView.scrollEnabled = YES;
self.scrollView.contentSize = CGSizeMake(SCREEN_WIDTH*self.pageNumber,);
self.scrollView.showsHorizontalScrollIndicator = NO;
self.scrollView.showsVerticalScrollIndicator = NO;
; ind < self.guidanceImageArray.count; ind++) {
// 插入要轮播的image
}
[self.view addSubview:self.scrollView];
(2)pageControl的设置
self.pageControl.hidesForSinglePage = YES;
self.pageControl.pageIndicatorTintColor = [UIColor colorWithHexString:@"e1e1e1"];
self.pageControl.currentPageIndicatorTintColor = [UIColor colorWithHexString:@"ff6633"];
self.pageControl.indicatorMargin = ;
self.pageControl.indicatorDiameter = ;
self.pageControl.numberOfPages = self.pageNumber;
self.pageControl.currentPage = ;
[self.pageControl addTarget:self action:@selector(changePage) forControlEvents:UIControlEventValueChanged];
(3)pageControl的动作action ,changePage这样写:
-(void)changePage{
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * self.pageControl.currentPage;
frame.origin.y = ;
[self.scrollView scrollRectToVisible:frame animated:YES];
self.pageControlIsChangingPage = YES;
}
(4)scrollView的2个主要代理方法:
#pragma mark UIScrollViewDelegate
//滚动时调用的方法,其中判断画面滚动时机
-(void)scrollViewDidScroll:(UIScrollView *)sender{
//画面滚动超过50%时进行切换
CGFloat pageWidth = sender.frame.size.width;
NSInteger page = floor((sender.contentOffset.x - pageWidth/)/pageWidth)+;
self.pageControl.currentPage = page;
}
//滚动完成时调用的方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
self.pageControlIsChangingPage = NO;
}
(5)需要全屏显示,隐藏navigationBar,设置statusBar:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:YES];
[self setNeedsStatusBarAppearanceUpdate];
}
二、LVUserGuideVC加载时机,尝试了以下两个方法
(1)在Home页直接加载到window上,在合适的时机,从window上remove掉LVUserGuideVC到达home页:
self.guidanceVC = [[LVUserGuideVC alloc] init]; UIWindow *window = [[UIApplication sharedApplication] keyWindow]; self.guidanceVC.view.frame = window.bounds; [window addSubview:self.guidanceVC.view];
注意:此处的guidanceVC,一定不能是局部变量,否则,把guidanceVC.view加载到window后,guidanceVC这个变量就释放掉了,里面scrollView的代理等所有方法都不能执行。
要取消掉userGuide页面,只需在LVUserGuideVC里remove掉即可
[self.view removeFromSuperView];
(2)作为navigatore的根视图,可以在login页、home页跳转
LVUserGuideVC *guidanceVC = [[LVUserGuideVC alloc] init]; self.navigationController = [[NVNavigationController alloc] initWithRootViewController:guidanceVC]; self.window.rootViewController = self.navigationController;
需要去掉userGuide页面时,把navigatore的根视图变换即可。
用户引导页--- ScrollView的使用的更多相关文章
- iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ①)
好长时间没更新博客, 是时候来一波干货分享了;APP引导页话不多说每一个APP都会用到,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了吧,当然这里讲的不是 ...
- iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults
首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #im ...
- GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
每一个APP都会用到APP引导页,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了,当然这里讲的不是APP引导页的美化而是APP引导页的高度集成,一行代码搞 ...
- iOS开发之应用首次启动显示用户引导
这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面 基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...
- Android零基础入门第69节:ViewPager快速实现引导页
在很多APP第一次启动时都会出现引导页,在一些APP里面还会包括一些左右滑动翻页和页面轮播切换的情况.在之前也已经学习了AdapterViewFlipper和ViewFlipper,都可以很好的实现, ...
- iOS App引导页功能实现
一.写作原因 以前都没有想着来写点东西,今天遇到件事情让我决定每次还是要做记录.因为以前自己可以轻松的完成pod spec的配置,但是今天在做的时候还是忘了遇到了很多坑.pod spec配置遇到的坑不 ...
- Xamarin.Android之引导页的简单制作
0x01 前言 对于现在大部分的APP,第一次打开刚安装或更新安装的APP都会有几个引导界面,通常这几个引导页是告诉用户 APP有些什么功能或者修改了什么bug.新增了什么功能等等等. 下面就用Xam ...
- 如何做好App的引导页?(转)
http://uedc.163.com/12264.html 当你第一次打开一款应用的时候常常会看到精美的引导页设计,它们在你未使用产品之前提前告知你产品的主要功能与特点,第一次印象的好坏会极大地影响 ...
- Android 高级UI设计笔记22:Android 指示引导页(带圆点)
1. 引导页: 我们在安装某个软件首次运行时,大部分都会有一个引导页的提示,介绍软件新功能的加入或者使用说明等,支持滑动且下面会有几个圆点,显示共有多少页和当前图片的位置,类似如下效果: 2. 引导页 ...
随机推荐
- 深入理解MVC模式
一,什么是MVC模式 该模式是一种软件设计典范,他把软件系统划分为三个基本部分:模型层(Model).视图层(View).控制器(Controller) *Model(模型)表示应用程序核心(比如数据 ...
- iOS TabeView 头视图和尾视图不滑动的实现
因项目有需求不能让section中的头尾视图滑动,顾根据网上的一些资料和自己整理的思路,已实现了不滑动效果,上代码,啥都说了,搞了2个小时都是泪.... 1.创建一个tableview _mainTa ...
- mysql 常用语句
1,查看索引使用情况的语句: explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explai ...
- vue
vue.js 插件 setting--> plugins 搜索vue,下载安装如果想要高亮显示*.vue文件,可以在File Types 选项里找到HTML,然后在下方手动添加*.vue,这样就 ...
- LeetCode——Single Number II(找出数组中只出现一次的数2)
问题: Given an array of integers, every element appears three times except for one. Find that single o ...
- cookie编码乱码问题与cookie禁用后session操作
Cookie传输的值只能是ASCII码,该编码表相对老旧不含有很多符号与文字 特别是中文,所以在cookie传值过程中需要先转成相应的ASCII编码再解析 如下 URLEncoder.encode(& ...
- JavaScript 富文本编辑器
WEB项目中使用UEditor(富文本编辑器) UEditor - 完整示例 http://ueditor.baidu.com/website/onlinedemo.html UEditor注意事项: ...
- PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机
在零售方面也有很好的应用.如在一些高端品牌零售店,营业员可以随身导购,一站式完成了商品销售和收银,很是受消费者追捧,符合了企业对客户体验以及行业领先的追求. PDA收银系统是一款多功能可以取代专业收银 ...
- 疯狂房价"逼死"年轻人,别指望中国未来能出人才了
社会高房价,杀死那个学者 --北京青年学者生存侧记 这一轮,房价又上涨了,只有更疯狂. 几年前,北京三环内的房价突破5万,世人惊呼:没几年,四环5万了,五环5万了:这一轮,北京城乡结合部,哪怕脏乱差之 ...
- 2016 Multi-University Training Contest 6
5/12 2016 Multi-University Training Contest 6 官方题解 打表找规律/推公式 A A Boring Question(BH) 题意: ,意思就是在[0,n] ...