iOS可伸缩菜单

时间:2013-03-20 21:50:51

标签: ios xcode menu

我目前正在开发一款包含音乐播放器的应用。截至目前,它有一个播放,暂停和&选择歌曲按钮,显示当前播放的歌曲。现在,播放器始终在屏幕上。我想让它成为页面中间的一个按钮,这样当用户点击它时,将出现带有播放,暂停和选择歌曲按钮/图标的整个媒体播放器。当他们再次点击那个中间按钮时,它将隐藏这些图标。

如果有人能指出我正确的方向,无论是教程已经出来,还是其他讨论(我真的找不到任何一个)那将是非常棒的!

注意:我不打算制作facebook使用的弹出菜单。此菜单/音频播放器将在当前视图上水平扩展/缩回

提前谢谢!!!!

2 个答案:

答案 0 :(得分:1)

听起来你需要查看视图对象的.hidden属性(允许你使视图可见/不可见),并且可能能够使用.frame属性在屏幕上移动视图(设置位置,高度宽度)。

如果没有关于你想要达到的效果的一些更详细的信息,很难说更多。如果使用界面构建器来设置要显示的视图/ UI对象,则可以在界面构建器中将基本视图设置为隐藏,然后在用户单击该按钮时设置.hidden = NO。

注意:为了能够像这样显示/隐藏所有内容,我假设您在界面构建器中使用单个UIView对象作为容器(大小并放置在您想要的位置),然后添加您的控制器按钮作为单个视图中的子对象。这允许您通过为包含视图设置.hidden属性来显示/隐藏所有内容。

答案 1 :(得分:0)

我不确定你想要的视觉效果,但我认为你已经说过了 - 只是隐藏它们。

你可以通过几种方式做到这一点。

一种简单的方法就是将这些元素放在自己的视图中。使用storyboard或xib文件。将要隐藏的按钮和控件放在视图中显示。

然后在视图控制器中为该视图创建一个引用。称之为controlsView。

 @property (strong,nonatomic) IBOutlet UIView *controlsView;

确保连接该视图。

然后按下按钮时,只需隐藏整个视图:

 self.controlsView.hidden = YES;

再次按下时,显示:

 self.controlsView.hidden = NO;

如果你想要更平滑的外观和感觉,请将其包裹在这样的动画中:

  //to hide
  [UIView animateWithDuration:2 animations:^{
       [self.controlsView setAlpha:0];
  } completion {
       self.controlsView.hidden = YES;
  }];

  //to show
  self.controlsView.alpha = 0;
  self.controlsView.hidden = NO;
  [UIView animateWithDuration:2 animations:^{
       [self.controlsView setAlpha:1.0];
  } completion {

  }];

希望有所帮助