2

我有 2 个 ViewController,它们的 .m 文件中都有这段代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]]];

}

并且我在两个 ViewController 之间进行了推送转换。所以当它在我的 iPod 上运行时,看起来第二个背景从右向左推第一个背景。

但这不是我想要的,因为两个 ViewController 的背景是相同的。我只需要在 ViewControllers 1 上移动 UI 组件(按钮、文本字段、标签等),而不是在转换运行时移动背景。

也当来自 ViewControllers 2 的 UI 组件滑入时。只有组件滑入。

如何执行此操作?谢谢你..

4

3 回答 3

3

试试这个:

[self.navigationController.view setBackgroundColor:<#(UIColor *)#>]

并在您的视图控制器上清除背景:

[self.view setBackgroundColor:[UIColor ClearColor]
于 2013-09-10T14:05:18.393 回答
2

当第一个视图控制器加载时,将背景添加为插入到视图控制器视图后面的窗口的子视图。然后使视图控制器视图透明。有两件事要考虑:确保你持有对它的引用,这样你就可以在视图控制器被关闭时移除背景。其次,这个背景不会随着视图控制器视图自动旋转。

现在,这就是您问题的直接答案。如果你能按照 incmiko 的建议得到你想要的,你会是最好的。

于 2013-09-10T14:12:25.143 回答
1

您不必使用 2 个 ViewController。使用一个,并将您的 UI 组件添加到两个视图中。然后用动画移动它们。

将两个视图添加到您的 ViewController。将“第一个 ViewController”UI 组件添加到其中一个,然后将“第二个 ViewController”UI 组件添加到另一个。用动画移动它们,比如你的序列。你可以使用这个:

 [UIView animateWithDuration:0.6 delay:0.
 options:UIViewAnimationOptionCurveEaseInOut animations:^{

      firstView.center = CGPointMake(Pointx, Pointy);
      secondView.center = CGPointMake(Pointx2, Pointy2);

      } completion:nil];
于 2013-09-10T14:00:37.297 回答