制作引导页[3]
制作 引导
2023-09-14 08:57:17 时间
制作引导页[3]
第三种方法是将整个引导页写到一个controller中,是通用性最高的一种写法:)
效果:
源码:
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 () @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 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 () @implementation RootViewController - (void)viewDidLoad [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; [UIView animateWithDuration:2 animations:^{ self.view.backgroundColor = [UIColor blackColor]; @end
几个需要注意的地方:
动画结束后要切换视图控制器
过渡更自然
总结:
这几篇教程制作引导页的核心都是在UIWindow上加载视图或者视图控制器,就是这么容易哦:)
如何制作一个闪屏页面 闪屏(Splash)指的是当你打开一个应用时,首先映入眼帘的那个界面。通常闪屏页面都会比较简单,因为要一闪而过(这大概就是为什么叫做闪屏了),一般都会放置产品的 LOGO,在游戏中通常会放置游戏制作团队或者工作室的 LOGO。
微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现 **微信小游戏开发实战系列的第15篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容。 本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。
界面无小事(一): RecyclerView+CardView了解一下界面无小事(二): 让RecyclerView展示更多不同视图界面无小事(三):用RecyclerView + Toolbar做个文件选择器界面无小事(四):来写个滚动选择器吧!界面...