码迷,mamicode.com
首页 > 其他好文 > 详细

用户引导页

时间:2016-12-22 00:23:19      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:轮播   control   home   变换   hang   visible   super   释放   cti   

一、首先第一步,写好用户轮播页的viewController,比如叫做LVUserGuideVC,关键代码是配置和scrollView和pageControl。

pageControl的动作action ,changePage这样写:

-(void)changePage{
    
    CGRect frame = self.scrollView.frame;
    frame.origin.x = frame.size.width * self.pageControl.currentPage;
    frame.origin.y = 0;
    [self.scrollView scrollRectToVisible:frame animated:YES];
    self.pageControlIsChangingPage = YES;
}

scrollView的2个主要代理方法:

#pragma mark UIScrollViewDelegate

//滚动时调用的方法,其中判断画面滚动时机
-(void)scrollViewDidScroll:(UIScrollView *)sender{
    //画面滚动超过50%时进行切换
    CGFloat pageWidth = sender.frame.size.width;
    NSInteger  page = floor((sender.contentOffset.x - pageWidth/2)/pageWidth)+1;
    self.pageControl.currentPage = page;
}

//滚动完成时调用的方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    self.pageControlIsChangingPage = NO;
}

把要轮播的画面都添加到scrollView里就好了。

二、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的根视图变换即可。

用户引导页

标签:轮播   control   home   变换   hang   visible   super   释放   cti   

原文地址:http://www.cnblogs.com/Xylophone/p/6209474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!