制作引导页[1]
制作引导页的核心都是将视图控件加载在UIWindow上显示,在制作引导页[1]中,我们先用最容易理解的方式来制作引导页:)
效果:
源码:
AppDelegate.m
//
// AppDelegate.m
// Show
//
// Copyright (c) 2014年 Y.X. All rights reserved.
//
#import "AppDelegate.h"
#import "RootViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [RootViewController new];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
@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];
}
- (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.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];
}];
}
@end
几个需要注意的地方:
在RootViewController的viewDidAppear方法中加载(因为只有在viewDidAppear的时候UIWindow才会接管这个RootViewController)
要确保添加在UIWindow上
最后记得从UIWindow上移除掉
很简单,对吧:)