2

私はこのストーリーボードを持っています:

ここに画像の説明を入力

私の最初のViewControllerは、プログラムで背景としてPNG画像を持っています:

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

私の2番目のViewControllerは、ストーリーボードの背景プロパティとしてクリアカラーを選択することにより、透明な背景を持っています。

しかし、私の iPod で実行すると、2 番目の ViewController は同じ背景を持っているように見えますが、最初の ViewController の背景を右から左に押しています。

私がやりたいことは:

  1. Segue が検出されると、最初の ViewController のすべての UI コンポーネントが現在の位置から左に移動するため、2 番目の ViewController によってすべてがプッシュされているように感じられます (背景ではなく、背景をその位置に保持したい)。

  2. 次に、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 に答える