14

左、中央、右の 3 つのボタンで IB を使用して設定した UIToolbar があります。状況によっては、中央のボタンを表示したくないことがあります。UIToolBar 内の特定のボタンを非表示にする方法を知っている人はいますか? 非表示プロパティはありません。私が見つけることができるのはsetEnableだけですが、これでもボタンが残り、ユーザーはその目的が何であるか疑問に思います。実際に使うシチュエーションでのみ展示したいと思います。

前もって感謝します!

4

6 に答える 6

28

アイテムをリセットします:

-(void)setItems:(NSArray *)items animated:(BOOL)animated

itemsプロパティを使用して現在のアイテムを取得し、表示したくないアイテムを削除して new に渡すことができますNSArray

ご覧のとおり、アニメーション化してユーザーにわかりやすくすることもできます。

于 2010-06-04T04:26:44.067 に答える
6

これが私がやった方法です..頭痛がしすぎますが、私が思いつくことができる最高のものです:

NSArray *toolBarArray = toolBar.items;
NSMutableArray *newToolBarArray = [NSMutableArray arrayWithArray:toolBarArray];
[newToolBarArray removeObjectAtIndex:2];
[newToolBarArray removeObjectAtIndex:1];
//remove whatever buttons you want to.

NSArray *finalTabBarArray =[[NSArray alloc] initWithObjects:newToolBarArray, nil];
[toolBar setItems:[finalTabBarArray objectAtIndex:0] animated:NO];
于 2012-07-12T07:23:25.233 に答える
2

私はそれがかなり古いスレッドであることを知っていますが、このページで解決策を探している人は、ここに行きます:

iOS7 では、このアプローチを使用してツールバー ボタンを表示/非表示にすることができます。

    if(// your code Condition) 
{ self.toolbarBtn1.enabled = YES;
 self.toolbarBtn1.tintColor = nil; }
 else
 { self.toolbarBtn1.enabled = NO; 
self.toolbarBtn1.tintColor = [UIColor clearColor]; }

于 2016-04-29T16:40:13.173 に答える
1

Mohitの答えは私が使用したものですが、ツールバーが設定するNSArrayにする必要はありません。アイテムの配列をNSMutableArrayとして設定するだけです。私が知っている本当の利点はありませんが、コードが数行少なくなっています。そうすれば、オブジェクトを含む他の配列と同じように、配列を取得してUIButtonオブジェクト内を移動し、その可変配列を使用してツールバーをリセットできます。

[newToolBarArray removeObjectAtIndex:2];
[newToolBarArray removeObjectAtIndex:1];
[toolBar setItems:newToolBarArray];
于 2012-09-18T00:46:10.303 に答える
1

setItem で送信している配列が関数が期待するものではないため、これはここでは機能しません。

行を置き換える必要がありました:

NSArray *finalTabBarArray = [[NSArray alloc] initWithObjects:newToolBarArray, nil];

これで:

NSArray *finalTabBarArray = [newToolBarArray copy];

その後、完全に機能します。

于 2012-07-12T08:55:23.147 に答える