我正在尝试在我的应用程序中创建简单的菜单(类似于facebook)。我发现了几个问题,其中大多数已经接受了答案,但是通常的答案是使用开发人员完成的某些程序。
这些程序通常是xCode的旧版本(其中一个不使用情节提要),而那些在情节提要中完成的程序对于我来说太复杂了,无法在我的应用程序中实现。
因此,我发现了一个问题,该问题的答案如下:
1.创建菜单视图控制器(对我来说是UITableViewController)
2.在您的初始视图控制器中隐藏此控制器:
MenuViewController *menView = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
[self.view sendSubviewToBack:menView.view];
3创建一个按钮(可能稍后再摇动手势),在该方法中,请执行以下操作:
-(IBAction)menuButtonPressed:(id)sender
{
CGRect destination = self.navigationController.view.frame;
if (destination.origin.x > 0) {
destination.origin.x = 0;
} else {
destination.origin.x +=254.5;
}
[UIView animateWithDuration:0.25 animations:^{
self.navigationController.view.frame = destination;
} completion:^(BOOL finished)
{
self.view.userInteractionEnabled = !(destination.origin.x > 0);
}];
}
我猜这是什么,基本上是将视图向右移动固定的长度。我想,您的视图,即sendedToBack(您的UITableView)应该公开并且可以交互。但是,它为我所做的一切就是将顶视图向右移动,并在后面留有空白的黑色屏幕。
现在我想,我的问题不是菜单视图的错误实例化,就是我误解了本指南。
如果有人知道如何处理这个问题,我将非常感谢您的回答。也许有一些已经完成的应用程序,就这么容易理解,并希望在我的代码中更容易实现:)
谢谢!
最佳答案
我将使用情节提要中的容器视图执行此操作。您可以按自己的喜好调整左一个的大小,然后在其旁边添加一个右一个,然后在检查器中将其宽度更改为320-大多数将在屏幕右侧消失,并且将其嵌入式控制器的大小调整为全屏尺寸。您可以删除从左侧容器视图获得的视图控制器,然后将其拖出表视图控制器,并使用嵌入的segue从左侧视图连接它(当您从容器视图控制拖动时,它将是唯一的选择) 。我在主控制器的视图中添加了两个滑动手势识别器(一个向左,一个向右)并将它们连接到主控制器中的2个方法。然后在主控制器中,我在.h中有以下代码:
@interface ViewController : UIViewController
@property (weak,nonatomic) IBOutlet UIView *rightView;
@property (assign,nonatomic) CGRect rightRect;
@end
而在.m中,仅此:
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.rightRect = self.rightView.frame;
}
-(IBAction)revealSidebar:(id)sender {
[UIView animateWithDuration:.3 animations:^{
self.rightView.frame = self.view.window.frame;
}];
}
-(IBAction)hideSidebar:(id)sender {
[UIView animateWithDuration:.3 animations:^{
self.rightView.frame = self.rightRect;
}];
}
@end
关于iphone - 如何创建简单菜单?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13515378/