zoukankan      html  css  js  c++  java
  • ios成长之每日一遍(day 6)

    toolBar上的View Switcher

    BIDAppDelegate.h

    #import <UIKit/UIKit.h>
    @class BIDSwitchViewController;
    @interface BIDAppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    @property (strong, nonatomic) BIDSwitchViewController *switchViewController;
    
    @end

    BIDAppDelegate.m

    #import "BIDAppDelegate.h"
    #import "BIDSwitchViewController.h"
    @implementation BIDAppDelegate
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        
        self.switchViewController = [[BIDSwitchViewController alloc]
                                     initWithNibName:@"SwitchView" bundle:nil];
        UIView *switchView = self.switchViewController.view;    // 获取controller所管理的view
        CGRect switchViewFrame = switchView.frame;    // 获取view的x,y,width,height
        switchViewFrame.origin.y += [UIApplication
                                     sharedApplication].statusBarFrame.size.height;    // 设定高度是在statusbar下
        switchView.frame = switchViewFrame;
        [self.window addSubview:switchView];    // 把view添加到window
    
        
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    - (void)applicationWillResignActive:(UIApplication *)application
    {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }
    
    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }
    
    - (void)applicationWillEnterForeground:(UIApplication *)application
    {
        // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
    }
    
    - (void)applicationDidBecomeActive:(UIApplication *)application
    {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }
    
    - (void)applicationWillTerminate:(UIApplication *)application
    {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }
    
    @end

    BIDSwitchViewController.h

    #import <UIKit/UIKit.h>
    
    @class BIDYellowViewController;
    @class BIDBlueViewController;
    
    @interface BIDSwitchViewController : UIViewController
    
    @property (strong, nonatomic) BIDYellowViewController *yellowViewController;
    @property (strong, nonatomic) BIDBlueViewController *blueViewController;
    
    - (IBAction)switchViews:(id)sender;
    
    @end

    BIDSwitchViewController.m

    #import "BIDSwitchViewController.h"
    #import "BIDYellowViewController.h"
    #import "BIDBlueViewController.h"
    
    @interface BIDSwitchViewController ()
    
    @end
    
    @implementation BIDSwitchViewController
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.blueViewController = [[BIDBlueViewController alloc]
                                   initWithNibName:@"BlueView" bundle:nil];    // 根据xib创建ViewController
        [self.view insertSubview:self.blueViewController.view atIndex:0];    // 把blueViewController的view插进索引为0的根view中
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
        if (self.blueViewController.view.superview == nil) {        // 如果blueViewController的view的根view是nil
            self.blueViewController = nil;    // 把blueViewController置空
        } else {
            self.yellowViewController = nil;    // 否则yellowViewController置空
        }
    }
    
    - (IBAction)switchViews:(id)sender {
        [UIView beginAnimations:@"View Flip" context:nil];      // UIView开始动画
        [UIView setAnimationDuration:10.25];                     // 设置动画时间
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];   // 定义动画块加速减速的方式
        if (self.yellowViewController.view.superview == nil) {    
            if (self.yellowViewController == nil) {   // yellowViewController为空
                self.yellowViewController =
                [[BIDYellowViewController alloc] initWithNibName:@"YellowView"
                                                          bundle:nil];
            }
            [UIView setAnimationTransition:   
             UIViewAnimationTransitionFlipFromRight
                                   forView:self.view cache:YES];    // 设置动画方式,并指出动画发生的位置 
            
            [self.blueViewController.view removeFromSuperview];    // 把blueViewController的view从他的父view中移除
            [self.view insertSubview:self.yellowViewController.view atIndex:0];    // 把yellowViewController的view插进索引为0的根view中
        } else {
            if (self.blueViewController == nil) {
                self.blueViewController =
                [[BIDBlueViewController alloc] initWithNibName:@"BlueView"
                                                        bundle:nil];
            }
            [UIView setAnimationTransition:                         // bold
             UIViewAnimationTransitionFlipFromLeft                  // bold
                                   forView:self.view cache:YES];    // bold
            [self.yellowViewController.view removeFromSuperview];
            [self.view insertSubview:self.blueViewController.view atIndex:0];
        }
        [UIView commitAnimations];                                   // 提交UIView动画
    }
    
    @end
  • 相关阅读:
    2017.2.27学习笔记-----开发板,PC,虚拟机三者ping通
    2017.2.25学习笔记
    vue基础之计算属性和侦听器
    vue基础之组件通信
    vue基础之组件创建
    vue基础之监听器
    vue基础之生命周期
    vue基础之条件渲染
    vue基础之插槽
    vue总结
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/3745232.html
Copyright © 2011-2022 走看看