使用 presentModalViewController 的新视图位置问题

Posted

技术标签:

【中文标题】使用 presentModalViewController 的新视图位置问题【英文标题】:Problem with position of new view using presentModalViewController 【发布时间】:2011-08-18 06:39:17 【问题描述】:

我正在尝试使用 presentModalViewController 向我的应用添加新视图。

ASpotImageViewController *aSpotImage = [[ASpotImageViewController alloc] initWithNibName:@"ASpotImageView" bundle:nil spotID:spotid];
aSpotImage.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
//NSLog(@"frame is %@", aSpotImage.view.frame);
//NSLog(@"origin is %@", aSpotImage.view.frame.origin);
NSLog(@"description is %@", aSpotImage.description);
[aSpotImage setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentModalViewController:aSpotImage animated:YES];

但是当我使用它时,新视图出现在屏幕下方大约 40 像素左右,并且底部被切断。这可能是什么原因造成的?在我使用此代码的其他情况下,我没有这个问题。

【问题讨论】:

【参考方案1】:

您当前的容器具有(320,440,0,40) 的框架,因此当您出现在它上面时,它似乎被抵消了那么多,尽管实际上它只是将它添加到位置(0,0) 相对于父容器.解决方法是根据当前视图或父视图重新调整框架。

【讨论】:

我该怎么做?我尝试手动调整框架,但它似乎没有改变模态视图控制器中的任何内容。 我在 iPad 上遇到了同样的问题,即使在横向模式下,如果我检查框架,它会告诉我 0,0,768,1024 这是纵向模式的大小.【参考方案2】:

Gurooj,你实现了吗?试试这个

UINavigationController *nextController = [[UINavigationController alloc] initWithRootViewController:aSpotImage];
[self presentModalViewController: nextController animated: YES];

空白通常是导航栏的高度,我猜?

【讨论】:

这只会在屏幕上出现一个新的空白导航栏。它实际上留下了一个黑色空间,与我尝试推送的新视图颜色相同。但是父视图的背景是白色的。这只会让我更加困惑。

以上是关于使用 presentModalViewController 的新视图位置问题的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份