【问题标题】:UIView transitions present modal view at the bottomUIView 过渡在底部呈现模态视图
【发布时间】:2010-03-11 02:22:31
【问题描述】:

当用户点击一个按钮时,我需要显示一个 UIView/UIViewController,并且模态视图的显示应该与在 UITextField 中编辑文本时键盘从底部栏中显示的方式一样。使用以下代码,我可以将其显示为弹出窗口。

[self presentModalViewController:child animated:YES];

如何让它看起来像键盘?


我了解模态视图覆盖了整个屏幕。但我真的想要一个只覆盖一半屏幕的视图。所以,请告诉我为什么这不起作用

MyController *controller = [[MyController alloc] initWithNibName:@"MyView" bundle:nil];
CGRect frame = CGRectMake(0,44,768,264);
[controller view].frame = frame;
contoller.delegate = self;
[[self view] addSubView:[controller view]];
[controller release];

我正在尝试向当前视图添加一个子视图,并使其出现在键盘出现的位置。

【问题讨论】:

    标签: objective-c xcode uiviewcontroller model-view-controller


    【解决方案1】:

    检查您的child.modalTransitionStyle == UIModalTransitionStyleCoverVertical

    (而且一个模型视图控制器总是覆盖整个屏幕。如果你只需要像键盘一样覆盖半个屏幕,你需要把视图控制器的视图作为主视图的子视图,然后手动动画它带有动画块。)

    【讨论】:

    • 这有帮助。谢谢你。您能否详细说明从底部栏滑动的动画?
    • @Dave:只需设置过渡样式并呈现模态视图控制器。
    • 好的。我将转换样式设置为 CoverVertical,并将 PresentationStyle 从 FormSheet 更改为 PageSheet。它的动画就像我想要的那样,但它覆盖了整个页面。有没有办法调整视图的大小?
    • @Dave:模态视图控制器总是覆盖整个页面。
    • 那么我想我需要添加一个子视图,在这种情况下,对吧?请参阅我更新的问题 [以上]。
    【解决方案2】:

    我知道这是一个老问题,但对此的答案是使用 UIActionSheet。

    它不会显示视图控制器,但您可以显示仅覆盖屏幕一部分的自定义视图。

    查看这个问题了解更多信息

    Add UIPickerView & a Button in Action sheet - How?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多