如何呈现半屏模态视图?

时间:2011-08-02 05:30:28

标签: iphone objective-c xcode uiviewcontroller modalviewcontroller

我有一个UIViewController,当按下一个按钮时,我想要一个半屏视图向上滑动UIPicker。

我使用UIPicker在IB中创建了一个UIView,还有一个带有完成/取消按钮的UIToolBar。

我怎样才能使这个半视图向上滑动,背景视图仍然显示但是暗淡或无法播放。

到目前为止我正在使用此代码:

- (void)showModalView
{
    [self.popupView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
    [self.view addSubview:self.popupView];

    [UIView animateWithDuration:.2 animations:^{
        [self.popupView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    }];
}

这是一张照片:http://www.box.net/shared/static/08ji4s0f6i1b8qubrtz6.png

2 个答案:

答案 0 :(得分:4)

@乔恩:

方式-1:

通过将其alpha值设置为0并将主视图添加到主视图的子视图,并将其保持为不透明(alpha值为1),默认情况下,将主视图设为透视。

然后使用现有的模态视图控制器简单地呈现视图控制器。

请记住,由于透明度,您可以看到前一个视图的一半,但由于存在透明视图,因此无法触及它。

方式-2:

另一种解决方法是为UIView设置动画,其大小是现有视图的一半。

然后你必须简单地关注UIView的动画。

这里只是一个将作为子视图添加到现有视图的UIView,您将能够触摸屏幕的其余部分。

因此,您可以根据自己的要求遵循这两种方法。

希望这会对你有所帮助。

答案 1 :(得分:2)

这就是你需要在github TDSemiModalView上有一个半视图日期选择器的开源代码。检查代码中的演示项目。这是链接..希望它能解决您的问题。

TDSemiModalClass