侧面滑动菜单似乎正在成为一种更常见的界面元素,因为更多信息被塞进每个iPhone应用程序中.Facebook已将其纳入最新版本,新的Gmail应用程序似乎也包括在内.我想知道是否有人想到最有效的方式来开发这样的东西,因为它正在成为一个更常见的界面元素.虽然我对如何构建这个有自己的想法,但我很想知道其他人的想法.

我正在创建一个可重用的框架,用于在iOS应用程序中显示通知.我希望将通知视图添加到应用程序中其他所有内容的顶部,有点像UIAlertView.当我初始化侦听NSNotification事件并在响应中添加视图的管理器时,我需要获得对应用程序中最顶层视图的引用.这就是我现在所拥有的:
_topView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
Run Code Online (Sandbox Code Playgroud)
这适用于任何iOS应用程序,还是更安全/更好的方式来获得顶视图?
注意:这可能是添加到根视图控制器时Subview不自动调整大小的副本
我有一个iPad应用程序在其主窗口中切换不同的视图.视图切换代码如下所示:
- (void)switchToViewController:(UIViewController*)viewController {
if (currentViewController != viewController) {
[currentViewController.view removeFromSuperview];
currentViewController = viewController;
[window addSubview:viewController.view];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当新视图(UISplitView)以横向方向显示时,其大小不足以填充整个窗口.右边有一个空的黑色大空间.看起来视图只有768像素宽,而不是景观窗口的1024像素宽度.
如果我将设备旋转为纵向然后返回横向,则视图会自行调整大小.
如果设备处于纵向,一切正常.如果它是我展示的第一个视图,UISplitView也会正确调整大小.如果我在横向显示另一个视图后切换到它,则只会出现此问题.
那么,是否有某种方法可以强制iPhone OS在将视图添加到窗口后调整视图大小?
我已经打过电话sizeToFit,和setNeedsLayout.我也尝试将视图设置为bounds窗口bounds,我尝试将其设置frame为匹配上一个视图的帧.