5

我有一个UIViewController,当一个按钮被按下时,我想要一个半屏幕视图向上滑动一个UIPicker。如何呈现半屏模态视图?

我用UIPicker在IB中制作了一个UIView,以及带有Done/Cancel按钮的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

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

TDSemiModalClass

4

@乔恩:

方法1:

让你的主通过将其alpha值设置为0来查看transperant并将子视图添加到仅占主屏幕一半的主视图并保留它不透明(alpha值为1),因为它会默认。

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

请记住,由于transperancy你将能够看到前一视图的一半,但不会因为存在transperant视图而触摸它。

METHOD-2:

另一个解决办法是动画一个UIView其一半大小的现有观点的。

然后,你必须简单地按照UIView的动画。

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

因此,您可以按照您的要求遵循任一方法。

希望这可以帮助你。

相关问题