ios - Xcode 5 - 具有恒定背景的滑动切换 View

标签 ios view storyboard uistoryboardsegue uiswipegesturerecognizer

我了解如何实现 UISwipeGestureRecognizer,但我不了解如何正确使用多个 View 与其协作。

我的最终目标是提供一个时尚的界面,可以使用按钮或滑动来更改 View 。我希望一个恒定的背景而不是背景图像显示它再次转移到完全相同的图像。我目前正在使用 Storyboard ,其中每个 View 都有自己的 Controller ,并且我希望(如果可能)使其尽可能接近这种格式,以便直观地了解正在发生的事情。

我已经读过 subview 可能是我对这种场景的最大希望(将它们保持在右侧,直到调用滑动),但这会破坏我当前使用的 Storyboard结构,并且肯定会破坏任何视觉清晰度。

有没有人有什么建议?

最佳答案

我以编程方式做了同样的事情,但你可以使用 Storyboard实现同样的效果

1 .您需要保持相同背景的基本 View

2 .在基本 View Controller 的 viewDidLoad 中添加 3 个 View (或 2 个,取决于您的要求)具有透明背景的左、中、右,如下所示

[self addChildViewController:myChildViewController];

[myChildViewController view].frame = CGMakeRect(x,y,width,height);//Left one will have x = -320, y=0 ,Middle x= 0, y= 0, Right x = 32O etc.

 /* Add new view to source view */
 [self.view addSubview:[myChildViewController view]];

 /* Inform 'didMoveToParentViewController' to newly added view controller */
 [myChildViewController didMoveToParentViewController:self];

3 .在句柄 Swipe 方法中,使用动画更改 View 帧,使其看起来像滑动页面
例如
//swipe left, get right view in middle
 [UIView animateWithDuration:0.2 animations:^{

            CGRect frame = rightViewController.view.frame;
            frame.origin.x = 0;
            frame.origin.y = 0;
            rightViewController.view.frame = frame;

            CGRect middleViewFrame = middleViewController.view.frame;
            middleViewFrame.origin.x = -320;
            middleViewController.view.frame = middleViewFrame;

  }];

关于ios - Xcode 5 - 具有恒定背景的滑动切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20663749/

相关文章:

c# - Storyboard运行导致不透明度消失后,无法将边框不透明度重置为 1.0

ios - Swift Binary 被拒绝,我无法重现崩溃

ios - PresentingViewController 被设置为 nil

cocoa - 如何实现类似于 OS X Lion Mail 中的对话的自定义 View ?

c# - 在 DataTrigger 中绑定(bind) Storyboard 动画会使 XamlParser 崩溃

ios - 导航栏项目图标未正确显示

ios - 以编程方式将 UIScrollView 添加到 UIView 在 vi​​ewDidLoad 中不起作用,但在 viewDidAppear 中起作用?

ios - 如何从 MKLocalSearchCompletion 中提取国家和城市?

mysql - 无法在 MySQL 上创建 View

ios - 如何删除添加到导航 Controller View 中的 View ?