繁体   English   中英

如何呈现半屏模式视图?

[英]How To Present Half Screen Modal View?

我有一个UIViewController,当按下一个按钮时,我希望一个半屏视图向上滑动,并带有一个UIPicker。

我用UIPicker和带有完成/取消按钮的UIToolBar在IB中制作了UIView。

我如何做到这一点,以至于只有一半的视图向上滑动,而背景视图仍在显示但变暗或无法播放。

到目前为止,我正在使用以下代码:

- (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

@乔恩:

方法-1:

通过将主视图的Alpha值设置为0来使主视图透明,并在仅占主屏幕一半的主视图中添加一个子视图,并使其不透明(Alpha值为1),这与默认情况相同。

然后,使用当前的“模态视图控制器”简单地显示视图控制器。

请记住,由于具有透明性,您将能够看到以前视图的一半,但由于有透明视图,因此无法触摸它。

方法2:

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

然后,您只需简单地跟随UIView的动画。

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

因此,您可以按照自己的要求选择其中一种方法。

希望这对您有所帮助。

这是您需要的在GitHub TDSemiModalView具有半视图日期选择器的开源代码。 检查代码中的演示项目。 这是链接。希望它可以解决您的问题。

TDSemiModalClass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM