左、中央、右の 3 つのボタンで IB を使用して設定した UIToolbar があります。状況によっては、中央のボタンを表示したくないことがあります。UIToolBar 内の特定のボタンを非表示にする方法を知っている人はいますか? 非表示プロパティはありません。私が見つけることができるのはsetEnableだけですが、これでもボタンが残り、ユーザーはその目的が何であるか疑問に思います。実際に使うシチュエーションでのみ展示したいと思います。
前もって感謝します!
左、中央、右の 3 つのボタンで IB を使用して設定した UIToolbar があります。状況によっては、中央のボタンを表示したくないことがあります。UIToolBar 内の特定のボタンを非表示にする方法を知っている人はいますか? 非表示プロパティはありません。私が見つけることができるのはsetEnableだけですが、これでもボタンが残り、ユーザーはその目的が何であるか疑問に思います。実際に使うシチュエーションでのみ展示したいと思います。
前もって感謝します!
-(void)setItems:(NSArray *)items animated:(BOOL)animated
itemsプロパティを使用して現在のアイテムを取得し、表示したくないアイテムを削除して new に渡すことができますNSArray
。
ご覧のとおり、アニメーション化してユーザーにわかりやすくすることもできます。
これが私がやった方法です..頭痛がしすぎますが、私が思いつくことができる最高のものです:
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];
私はそれがかなり古いスレッドであることを知っていますが、このページで解決策を探している人は、ここに行きます:
iOS7 では、このアプローチを使用してツールバー ボタンを表示/非表示にすることができます。
if(// your code Condition)
{ self.toolbarBtn1.enabled = YES;
self.toolbarBtn1.tintColor = nil; }
else
{ self.toolbarBtn1.enabled = NO;
self.toolbarBtn1.tintColor = [UIColor clearColor]; }
Mohitの答えは私が使用したものですが、ツールバーが設定するNSArrayにする必要はありません。アイテムの配列をNSMutableArrayとして設定するだけです。私が知っている本当の利点はありませんが、コードが数行少なくなっています。そうすれば、オブジェクトを含む他の配列と同じように、配列を取得してUIButtonオブジェクト内を移動し、その可変配列を使用してツールバーをリセットできます。
[newToolBarArray removeObjectAtIndex:2];
[newToolBarArray removeObjectAtIndex:1];
[toolBar setItems:newToolBarArray];
setItem で送信している配列が関数が期待するものではないため、これはここでは機能しません。
行を置き換える必要がありました:
NSArray *finalTabBarArray = [[NSArray alloc] initWithObjects:newToolBarArray, nil];
これで:
NSArray *finalTabBarArray = [newToolBarArray copy];
その後、完全に機能します。