适用于iOS的滑块视图

Bre*_*int 3 uibutton xib uiview uilabel uiviewanimation

---- -----窗口1 ---- -----窗口2 有人可以帮我解决这个问题吗?

*有一个按钮,当点击时,幻灯片打开一个UIView,点击按钮仍然在其左侧.

*再次轻触此按钮会使U​​IView向后滑动.

Dun*_*n C 5

你所描述的很容易.让我们调用从右侧抽屉滑入的视图("drawerView").将抽屉视图设置为视图控制器主视图的子视图.

使"抽屉"视图成为容器视图.把你想要的一切都放在里面.(您的文本视图,按钮等)也将您的按钮放在此视图中.将该按钮连接到视图控制器中的动作"slideDrawer".

然后确保"剪辑子视图"为假,并使用左箭头键将抽屉视图的左边缘移开按钮.在IB中它会消失,但不要担心.IB不会像你正在运行的程序那样尊重"剪辑子视图"标志.

创建抽屉视图的插座并将其链接到您的代码.

一旦您的抽屉视图看起来完全符合您的要求,请在"尺寸检查器"中注明它的x坐标.我们称这个值为kVisibleX.然后将该视图向右拖动,直到它刚好在屏幕外.该按钮在IB中不可见,但在运行时仅在窗口边缘可见.(就像你在第一张图片中显示的那样)

请注意抽屉视图在屏幕外时的x坐标.我们将该值称为kOffscreenX.

将一个布尔实例变量"drawerIsShowing"添加到视图控制器.

现在编写一个IBAction方法slideDrawer:

- (IBAction) slideDrawer: (id) sender;
Run Code Online (Sandbox Code Playgroud)

在该方法中,检查drawerIsShowing以查看抽屉当前是否可见.如果是,请将其滑出屏幕.如果不是,请在屏幕上滑动.

- (IBAction) slideDrawer: (id) sender;
{
  CGFloat newX;
  if (drawerIsShowing)
    newX = kOffscreenX;
  else
    newX = kVisibleX;
  [UIView animateWithDuration: .25
  animations: 
  ^{
    CGRect drawerFrame = drawerView.frame;
    drawerFrame.origin.x = newX;
    drawerView.frame = drawerFrame;
  }
drawerIsShowing = !drawerIsShowing;
}
Run Code Online (Sandbox Code Playgroud)