我正在尝试在我的应用程序中创建简单的菜单(类似于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/

10-09 07:35
查看更多