博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIWindow,UINavigationController与UIViewController之间的关系
阅读量:6645 次
发布时间:2019-06-25

本文共 2333 字,大约阅读时间需要 7 分钟。

UIWindow,UINavigationController与UIViewController之间的关系

虽然每次你都用UINavigationController与UIWindow,但你不一定知道他们之间到底怎么运作的哦:)

AppDelegate.h的代码

RootViewController.m

////  RootViewController.m//  UIWindow////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "RootViewController.h"#define VALUE  1@interface RootViewController ()@end@implementation RootViewController- (void)viewDidLoad{    [super viewDidLoad];    self.view.backgroundColor = [UIColor redColor];        UITapGestureRecognizer *tap = \    [[UITapGestureRecognizer alloc] initWithTarget:self                                            action:@selector(tapEvent:)];        [self.view addGestureRecognizer:tap];}- (void)tapEvent:(UITapGestureRecognizer *)gesture{    static int flag = 1;    if (flag)    {        // 初始化3D变换,获取默认值        CATransform3D perspectiveTransform = CATransform3DIdentity;                // 缩放变换        perspectiveTransform = CATransform3DScale(perspectiveTransform, 0.75, 0.75, 0.75);                [UIView animateWithDuration:0.3 animations:^{            if (VALUE)            {                // 导航控制器的view                self.navigationController.view.transform = \                    CATransform3DGetAffineTransform(perspectiveTransform);            }            else            {                // 自身controller的view                self.view.transform = CATransform3DGetAffineTransform(perspectiveTransform);            }        }];                flag = 0;    }    else    {        // 初始化3D变换,获取默认值        CATransform3D perspectiveTransform = CATransform3DIdentity;                // 缩放变换        perspectiveTransform = CATransform3DScale(perspectiveTransform, 1, 1, 1);                [UIView animateWithDuration:0.3 animations:^{            if (VALUE)            {                // 导航控制器的view                self.navigationController.view.transform = \                    CATransform3DGetAffineTransform(perspectiveTransform);            }            else            {                // 自身controller的view                self.view.transform = CATransform3DGetAffineTransform(perspectiveTransform);            }        }];                flag = 1;    }}@end

VALUE = 1 的时候与 VALUE = 0 的时候

他们的关系其实非常简单.

UIWindow  ---> UINavigationController  --->  UIViewController,

有时候,我们需要做缩放动画的效果,或者是转场动画的效果,不理解他们之间细微的差距,是没办法处理好的.

他们之间的关系:

知道了这些原理,再写一个侧边栏,实在是太简单了:).

 

 

 

 

 

 

 

转载地址:http://ptevo.baihongyu.com/

你可能感兴趣的文章
spring boot 项目,maven打jar包时,将本地jar一块打入包
查看>>
Windows Server 2012 虚拟化实战:存储(一)
查看>>
linux shell 计算时间差并显示按时分秒显示
查看>>
iptables防火墙
查看>>
最大子序列和问题的解——C++实现;
查看>>
Shell脚本语言
查看>>
.NET快速开发平台,开发效率倍增神器
查看>>
阿里云 Aliplayer高级功能介绍(六):进度条标记
查看>>
【Python学习笔记】数据结构—序列——list列表和tuple元组
查看>>
Oracle 11G r2 Rac修改IP
查看>>
企业为什么需要IT资产管理
查看>>
Linux安装Mongodb4.0及远程配置
查看>>
大文件分割 - split
查看>>
光照模型与面绘制算法---OpenGL光照和表面绘制函数
查看>>
系统文件的损坏导致Windows XP连续重启的解决方案
查看>>
lvs的dr和nat模式配置备忘
查看>>
数据库小知识点
查看>>
北京点击科技有限公司董事长兼总裁——王志东经典语录5
查看>>
书籍推荐
查看>>
Linux误删home目录下的用户目录恢复
查看>>