2

私は iPhone アプリの UI を設計している最中で、下部に標準の 4 つのタブ バーを配置する予定です。同じタブ バーを文脈に応じて使用することを検討しています。これにより、検索結果をタップすると、下部のオプションが、押された項目に応じて変化します。

このやり方はユーザビリティに大きな問題をもたらすのでしょうか? それとも実行に関して一貫性があれば大丈夫なのでしょうか?

screen1 タブ ナビゲーションの下部: ABCD:

・検索結果をクリック

-新しいページは結果の詳細ビューにフォーカスされています

screen2 下部のタブ ナビゲーション: EFGH:

4

1 に答える 1

0

同じタブバーでそれを行うことはできません。タブバーを非表示にして、別のタブバーに目的のアイテムを表示できます。次のメソッドを使用してタブバーを非表示/表示できます。

- (void)hideTabBar:(UITabBarController *) tabbarcontroller
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];

    for(UIView *view in tabbarcontroller.view.subviews)
    {
        if([view isKindOfClass:[UITabBar class]])
        {
            [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
        } 
        else 
        {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
        }
    }

    [UIView commitAnimations];   
}

- (void)showTabBar:(UITabBarController *) tabbarcontroller
{       
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];
    for(UIView *view in tabbarcontroller.view.subviews)
    {
        NSLog(@"%@", view);

        if([view isKindOfClass:[UITabBar class]])
        {
            [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];

        } 
        else 
        {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
        }
    }

    [UIView commitAnimations]; 
}

これらのメソッドは次のように使用できます。

[self hideTabBar:self.tabBarController];
[self showTabBar:self.tabBarController];

tabBar を非表示にする場合は、新しいものを開始してビューに追加します。

于 2012-10-18T21:55:10.503 に答える