2

我有这个故事板:

在此处输入图像描述

我的第一个 ViewController 以编程方式将 PNG 图像作为背景:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgleft"]];
}

我的第二个 ViewController 通过在 Storyboard 上选择 Clear Color 作为 Background 属性具有透明背景。

但是当它在我的 iPod 上运行时,似乎我的第二个 ViewController 具有相同的背景,但将第一个 ViewController 背景从右向左推。

我想做的是:

  1. 当 Segue 检测到时,它会将第一个 ViewController 上的所有 UI 组件从当前位置移动到左侧,所以感觉就像它全部被第二个 ViewController 推送(但不是背景,我想将背景保持在它的位置)。

  2. 然后,第二个 ViewController 上的所有 UI 组件使用我已经在 Storyboard 上设置为透明 ViewController 的 Push Transition 进入。

因此,它将在不移动背景的情况下从一个 ViewController 平滑过渡到另一个 ViewController。

我尝试使用此代码:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"goToViewTwo"])
    {
        UIViewController *view2 = segue.destinationViewController;
        view2.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgleft"]];
    }
}

但我不知道如何移动/动画所有 UI 组件(按钮、标签等)以按照我描述的方式执行。请告诉我该怎么做..谢谢。

4

2 回答 2

2

我认为您可以通过使两个控制器都具有透明背景并将背景图像添加到窗口来做到这一点。

于 2013-09-11T04:33:01.083 回答
0

在第二个 viewController 中粘贴这个源

self.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
self.modalPresentationStyle = UIModalPresentationFormSheet;
于 2014-06-15T09:39:16.667 回答