创建从底部向上滚动的菜单的最佳方法是什么?

时间:2012-02-20 20:10:53

标签: iphone objective-c xcode menu subview

我对iPhone编程很新,我正在制作一个相当基本的应用程序。无论如何,我只是想知道如何创建一个从底部向上滚动的菜单(从标签栏的顶部开始),它显示了一些选项。我附上了一张更能帮助描绘我的意思的图片。我假设我应该创建某种子视图,然后添加一些动画,但我想得到你的建议,以最好的方式开始。 感谢

Home Screen Menu

3 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用未经修改的UIActionSheet。

如果这不是你想要的,那么使用模态视图控制器总是一种选择。

但是,如果你想要的东西不能覆盖整个屏幕,并且可以有自定义外观,那么基本的想法就是这样:

  1. 使用位于主视图底部的框架(例如,0,406)创建视图。
  2. (可选)禁用用户与主视图的互动
  3. 使用UIView动画将其向上移动
  4. 代码看起来像这样:

    UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, self.view.bounds.size.width, kCustomViewHeight)];
    [self.view addSubview:customView];
    
    [UIView animateWithDuration:0.2 animations:^{
      CGRect f = customView.frame;
      f.origin.y -= kCustomViewHeight;
      customView.frame = f;
    }];
    

答案 1 :(得分:0)

我自己没有这样做,但是看到了一个很酷的源代码,它是在UIScrollView的帮助下执行的(默认位于屏幕下方),包含UITableView和一个按钮(显示在屏幕下方)。按下此按钮后,ScrollView将获得一个移动命令(在IBAction中) 缩短,尝试查看UIScrollView(在其中使用UITableView)。

答案 2 :(得分:0)

我做了类似的事情,通过继承UIActionSheet并将我自己的控件添加为子视图,从屏幕底部弹出一些对象。我想在你的情况下可以使用类似的方法。

创建实现UITableViewDelegateUITableViewDataSource协议的UIActionSheet的子类。在该类的- (id)init方法中,添加UITableView作为子视图,self作为委托和数据源。

然后在主视图中,使用showInView:调用自定义UIActionSheet。

使用代理人回调主视图,让用户在选择选项时知道,然后使用[myCustomMenu dismissWithClickedButtonIndex:0 animated:YES]隐藏菜单。

相关问题