【发布时间】:2015-01-31 04:19:39
【问题描述】:
我有一个 UIViewController,我正在使用以下代码模态呈现:
FeedbackViewController *fvc=[[FeedbackViewController alloc] init];
fvc.delegate=self;
[fvc setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentViewController:fvc animated:YES completion:nil];
当点击此模态视图中的 UITextField 时,会出现键盘,并且视图会动画大约 60 像素。为了确保我的文本字段可见,我希望视图向上移动 200 像素。我知道在处理多个字段时可以在 UIScrollView 中滑动视图,但我想知道对于这种简单的情况是否没有更直接的选项?
感谢阅读。
替代解决方案: 我找到了一个目前对我有用的解决方法。我的模态视图控制器现在是全屏的——本质上是一个半透明背景上的白框——并且我展示了没有动画的 ViewController。然后,在模态视图的 viewWillAppear 方法中,我淡入半透明背景并向上滑动白色框。当模态视图被解除时,相反的情况会发生。 (这具有易于响应的背景的额外好处,例如,“点击关闭”。)
【问题讨论】:
-
有一个标志可以避免这种情况。
标签: ios objective-c ipad uiscrollview modalviewcontroller