1

ビューコントローラーの NSMutableArray を作成する方法に悩まされています。

次に、その配列を取得したら、左右のUIgestureスワイプを検出してビューの内外でアニメーション化する方法でそれを使用するにはどうすればよいですか...

これは、2 つのビュー間でアニメーション化するだけのジェスチャを取得する方法ですが、View Controller の配列にあるできるだけ多くのビュー間でアニメーション化したいと考えています。

- (void)swipedScreen:(UISwipeGestureRecognizer*)gesture {
    //Left swipe
    if (gesture.direction == UISwipeGestureRecognizerDirectionLeft) {

        [UIView animateWithDuration:0.25 animations:^{
            [self.detailViewB.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
            [self.detailViewA.view setFrame:CGRectMake(-320, 0, self.view.frame.size.width, self.view.frame.size.height)];
    }];

    }
    //Right swipe
    else if (gesture.direction == UISwipeGestureRecognizerDirectionRight){

        [UIView animateWithDuration:0.25 animations:^{
            [self.detailViewA.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
            [self.detailViewB.view setFrame:CGRectMake(320, 0, self.view.frame.size.width, self.view.frame.size.height)];
        }];

    }
}

側面として、これらのビューコントローラーをサブビューとしてロードしているマスタービューコントローラーがあります...少なくともそれは計画です..現在、ビューでこれを行っています...

http://dl.dropbox.com/u/53813770/SMPrototypeB.zip

更新しました:

これは、私が達成しようとしていることを示す図です。

ここに画像の説明を入力

配列からビューをロードするためのコードを次に示します。

DetailViewController *DVCA = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
DetailViewControllerB *DVCB = [[DetailViewControllerB alloc] initWithNibName:@"DetailViewControllerB" bundle:[NSBundle mainBundle]];
DetailViewControllerC *DVCC = [[DetailViewControllerC alloc] initWithNibName:@"DetailViewControllerC" bundle:[NSBundle mainBundle]];

//Create Array of views
viewArray = [NSArray arrayWithObjects:DVCA, DVCB, DVCC, nil];



// set detail View as first view 
UIViewController *recordController = [viewArray objectAtIndex:0];
// This was the bit causing me so many issues.
[self.view addSubview:recordController.view];
4

3 に答える 3

0

すぐに使用できるUIScrollViewを使用して、同じ効果を得るのはどうですか?複数の方向へのスクロールをサポートし、新しいコントロールを開発するためのすべてのオーバーヘッドを節約し、HIGガイドラインに違反することを心配する必要はありません。

于 2012-05-31T02:25:51.407 に答える
0

ビューコントローラーの NSMutableArray を作成する方法に悩まされています。

オブジェクトの他の配列を作成するのと同じ方法:

  1. オブジェクトを作成します。

  2. それらを配列に入れます。

アプリのデリゲートまたはルート ビュー コントローラー (他のすべてのビュー コントローラーを担当するオブジェクト) でそれを行うことができます。おそらく、アプリのデリゲートにビュー コントローラーを管理させることにしたいと思います。次に、最初のレスポンダーをスワイプ ジェスチャ レコグナイザーのターゲットとして設定し、ビュー コントローラーを切り替えるアクションをアプリ デリゲート (レスポンダー チェーンの一部) に実装できます。

于 2012-05-31T00:04:15.187 に答える
0

プロジェクトを見て、ルート ビュー コントローラーが実際にはナビゲーション コントローラーであることを確認したので、回答として再投稿します。

最初のビュー コントローラーがナビゲーション コントローラーの場合、OS は探している配列を提供します。これは UINavigationController の viewControllers プロパティです。それは不変ですが、変更可能なコピーを作成できます。

于 2012-05-31T00:06:59.513 に答える