当前位置:  开发笔记 > IOS > 正文

如何使用iOS 7自定义过渡在顶部呈现半模式视图控制器

如何解决《如何使用iOS7自定义过渡在顶部呈现半模式视图控制器》经验,为你挑选了1个好方法。

如何在主视图控制器的顶部显示"半视图"控制器?

要求: - 呈现第二个视图控制器,它在主视图控制器的顶部滑动. - 第二个视图控制器应仅显示主视图控制器的一半以上 - 主视图控制器应保持在第二个视图控制器后面可见(透明背景,下方未显示黑色) - 第二个视图控制器应使用类似于模态垂直覆盖的动画制作动画,或者iOS 7自定义转换 - 当第二个视图控制器处于活动状态时,用户仍然可以与主视图控制器上的按钮交互(即第二个视图控制器不覆盖整个主视图控制器)r - 第二个视图控制器有自己的复杂逻辑(不能简单视图) - 仅限故事板,Segues,iOS 7 - 仅限iPhone,而非iPad.

我尝试过使用模态视图控制器,但这不允许与主视图控制器交互.有人可以提供一个如何使用iOS7自定义转换或其他方法执行此操作的示例.



1> rdelmar..:

一种方法是将"半模式"控制器添加为子视图控制器,并将其视图设置到适当位置.在这个例子中,我在故事板中创建了"半模式"控制器,其框架的高度是4英寸iPhone屏幕的一半.您可以使用更多动态方法来考虑不同的屏幕尺寸,但这应该可以让您入门.

@interface ViewController ()
@property (strong,nonatomic) UIViewController *modal;
@end

@implementation ViewController


- (IBAction)toggleHalfModal:(UIButton *)sender {
    if (self.childViewControllers.count == 0) {
        self.modal = [self.storyboard instantiateViewControllerWithIdentifier:@"HalfModal"];
        [self addChildViewController:self.modal];
        self.modal.view.frame = CGRectMake(0, 568, 320, 284);
        [self.view addSubview:self.modal.view];
        [UIView animateWithDuration:1 animations:^{
            self.modal.view.frame = CGRectMake(0, 284, 320, 284);;
        } completion:^(BOOL finished) {
            [self.modal didMoveToParentViewController:self];
        }];
    }else{
        [UIView animateWithDuration:1 animations:^{
            self.modal.view.frame = CGRectMake(0, 568, 320, 284);
        } completion:^(BOOL finished) {
            [self.modal.view removeFromSuperview];
            [self.modal removeFromParentViewController];
            self.modal = nil;
        }];
    }
}


@Septronic,一种方法是在新视图中制作动画之前,在原始视图上方添加一个半透明(黑色,低alpha值)视图.
推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有