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

制作引导页[3]

时间:2014-08-13 10:15:25      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   for   ar   2014   

制作引导页[3]

bubuko.com,布布扣

第三种方法是将整个引导页写到一个controller中,是通用性最高的一种写法:)

效果:

bubuko.com,布布扣

源码:

AppDelegate.m

//
//  AppDelegate.m
//  Show
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "AppDelegate.h"
#import "WelcomeViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    // 接管控制器
    self.window.rootViewController = [WelcomeViewController new];
    self.window.backgroundColor = [UIColor whiteColor];
    
    // 让视图可见
    [self.window makeKeyAndVisible];
    
    return YES;
}

@end

WelcomeViewController.m

//
//  WelcomeViewController.m
//  Show
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "WelcomeViewController.h"
#import "RootViewController.h"

@interface WelcomeViewController ()

@end

@implementation WelcomeViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)viewDidAppear:(BOOL)animated
{
    [self scrollView];
}

- (void)scrollView
{
    CGRect rect    = self.view.window.bounds;
    CGFloat width  = rect.size.width;
    CGFloat height = rect.size.height;
    
    // 初始化scrollView
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:rect];
    scrollView.pagingEnabled = YES;
    scrollView.tag           = 0x77;
    scrollView.contentSize   = CGSizeMake(width * 3, height);
    
    // 添加一些控件
    for (int i = 0; i < 3; i++)
    {
        UIView *tmp         = [[UIView alloc] initWithFrame:CGRectMake(i*width, 0, width, height)];
        tmp.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.f
                                              green:arc4random()%255/255.f
                                               blue:arc4random()%255/255.f
                                              alpha:1];
        
        if (i == 2)
        {
            YXButton *button = [[YXButton alloc] initWithFrame:CGRectMake(0, 0, 140, 30)];
            button.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Thin"
                                                     size:20.f];
            button.layer.cornerRadius = 3.f;
            [button addTarget:self
                       action:@selector(buttonEvent:)
             forControlEvents:UIControlEventTouchUpInside];
            [button setBackgroundColor:[UIColor blackColor]
            highlightedBackgroundColor:[UIColor whiteColor]];
            [button setNormalTitleColor:[UIColor whiteColor]
                  highlightedTitleColor:[UIColor blackColor]
                     disabledTitleColor:nil];
            [button setNormalTitle:@"YouXianMing"
                  highlightedTitle:@"YouXianMing"
                     disabledTitle:@"YouXianMing"];
            button.center = self.view.window.center;
            [tmp addSubview:button];
        }
        
        [scrollView addSubview:tmp];
    }
    
    // 添加到UIWindow当中
    [self.view.window addSubview:scrollView];
}

- (void)buttonEvent:(UIButton *)button
{
    UIScrollView *scrollView = (UIScrollView *)[self.view.window viewWithTag:0x77];
    scrollView.userInteractionEnabled = NO;
    
    // 动画
    [UIView animateWithDuration:2.0 animations:^{
        scrollView.alpha = 0.f;
    } completion:^(BOOL finished) {
        // 从UIWindow上移除这个scrollView
        [scrollView removeFromSuperview];
        
        // 切换视图控制器
        self.view.window.rootViewController = [RootViewController new];
    }];
}

@end

RootViewController.m

//
//  RootViewController.m
//  Show
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor whiteColor];
    [UIView animateWithDuration:2 animations:^{
        self.view.backgroundColor = [UIColor blackColor];
    }];
}

@end

几个需要注意的地方:

bubuko.com,布布扣

动画结束后要切换视图控制器

bubuko.com,布布扣

过渡更自然

bubuko.com,布布扣

 

总结:

这几篇教程制作引导页的核心都是在UIWindow上加载视图或者视图控制器,就是这么容易哦:)

 

制作引导页[3],布布扣,bubuko.com

制作引导页[3]

标签:style   blog   http   color   io   for   ar   2014   

原文地址:http://www.cnblogs.com/YouXianMing/p/3906480.html

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