博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
addChildViewController 的使用
阅读量:7228 次
发布时间:2019-06-29

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

hot3.png

ChildViewSampleViewController.h

@interface ChildViewSampleViewController : UIViewController @end

ChildViewSampleViewController.m

@interface ChildViewSampleViewController ()@property (nonatomic) UIViewController *root;@property (nonatomic) UIViewController *overlap;@property (nonatomic) UIButton *button;@end @implementation ChildViewSampleViewController - (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.root = [[UIViewController alloc] init];    self.root.view.frame = CGRectMake(0, 60, 320, self.view.frame.size.height - 60);    [self.root.view setBackgroundColor:[UIColor yellowColor]];         [self addChildViewController:self.root];    [self.root didMoveToParentViewController:self];    [self.view addSubview:self.root.view];              self.button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 150, 50)];    [self.button setTitle:@"Show" forState:UIControlStateNormal];    [self.button addTarget:self action:@selector(pop:) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:self.button];} #pragma mark - Event-(void)pop:(id)sender {    if (self.overlap == nil ) {        // Open(Show)        self.overlap = [[UIViewController alloc] init];        [self.overlap.view setBackgroundColor:[UIColor redColor]];        [self addChildViewController:self.overlap];                 // Start line        CGRect startFrame = self.view.frame;        startFrame.origin.y = startFrame.size.height;        self.overlap.view.frame = startFrame;                 // Move half        [self transitionFromViewController:self.root                          toViewController:self.overlap                                  duration:1.0                                   options:0                                animations:^{                                    CGRect original = self.root.view.frame;                                    self.overlap.view.frame = CGRectMake(0, original.origin.y, original.size.width, original.size.height);                                }                                completion:^(BOOL finished) {                                    [self.overlap didMoveToParentViewController:self];                                    [self.button setTitle:@"Hide" forState:UIControlStateNormal];                                }];    }    else {        // Hide        [self.overlap willMoveToParentViewController:nil];                 // Good-bye        [self transitionFromViewController:self.overlap                          toViewController:self.root                                  duration:1.0                                   options:0                                animations:^{                                    CGRect original = self.root.view.frame;                                    self.overlap.view.frame = CGRectMake(0, original.size.height, original.size.width, original.size.height);                                    [self.overlap.view.superview bringSubviewToFront:self.overlap.view];                                                                     }                                completion:^(BOOL finished) {                                    [self.overlap removeFromParentViewController];                                    self.overlap = nil;                                    [self.button setTitle:@"Show" forState:UIControlStateNormal];                                }];    }} @end

ps:

转载于:https://my.oschina.net/jack088/blog/1537730

你可能感兴趣的文章
DTD和schema小总结
查看>>
去掉导航栏的黑线
查看>>
怎样让html加载完毕后加载js代码
查看>>
piwik 案例介绍
查看>>
敏感字过滤
查看>>
为什么我们要从 NodeJS 迁移到 Ruby on Rails
查看>>
Android 文件式数据库Realm
查看>>
Linux 面试知识点笔记
查看>>
论flex布局和box布局的华为meta8手机自带浏览器的兼容
查看>>
dubbo与springcloud初识
查看>>
iis web.config 配置示例
查看>>
归并排序
查看>>
java 的转义字符
查看>>
SharedPreferences的使用注意事项
查看>>
sofa-pbrpc高级用法
查看>>
Oracle 函数返回表实例2种写法实例
查看>>
mysql数据库主从复制
查看>>
Shell标准输出、标准错误 >/dev/null 2>&1
查看>>
Android自定义对话框(Dialog)位置,大小
查看>>
设置python的默认编码为utf8
查看>>