Iphone 如何将子视图从全屏更改为动作表样式

Iphone 如何将子视图从全屏更改为动作表样式,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我有一个视图,当单击按钮时,它会显示一个子视图,如下图所示 然而,这里浪费了很多空间。如何更改它,使子视图像一个操作表,只是在选择器的正上方有一个“完成/取消”按钮的选择器,就像通常完成的一样 当前,此视图是IB中的UIView,并使用以下代码在中设置动画: - (IBAction)dateButtonPressed { [dateView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.w

我有一个视图,当单击按钮时,它会显示一个子视图,如下图所示

然而,这里浪费了很多空间。如何更改它,使子视图像一个操作表,只是在选择器的正上方有一个“完成/取消”按钮的选择器,就像通常完成的一样

当前,此视图是IB中的UIView,并使用以下代码在中设置动画:

- (IBAction)dateButtonPressed
{
    [dateView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
    [self.view addSubview:dateView];
[UIView animateWithDuration:.5 animations:^{
        [dateView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

只需更改dateview的框架即可。如果要将视图高度保持为210(270=480-210),请使用(0,270,320,210),而不是(0,0320480)(对于iPhone)

如果希望“取消”和“完成”按钮出现在同一视图中,请创建一个带有日期选择器的UIView,并在其顶部创建一个带有“完成”和“取消”按钮的工具栏。并将此UIView再次添加到视图中,并在为日期视图的帧传递的CGRect中使用调整后的“y”