我有一个UIToolbar,我使用IB设置了三个按钮,左,中,右。在某些情况下,我想不显示中间按钮。有人知道在UIToolBar中隐藏特定按钮的方法吗?没有隐藏属性,我只能找到setEnable,但这仍然会导致用户不知道它的目的是什么。我只想在它实际上有用的情况下显示它。隐藏UIToolbar UIBarButtonItems
提前致谢!
我有一个UIToolbar,我使用IB设置了三个按钮,左,中,右。在某些情况下,我想不显示中间按钮。有人知道在UIToolBar中隐藏特定按钮的方法吗?没有隐藏属性,我只能找到setEnable,但这仍然会导致用户不知道它的目的是什么。我只想在它实际上有用的情况下显示它。隐藏UIToolbar UIBarButtonItems
提前致谢!
-(void)setItems:(NSArray *)items animated:(BOOL)animated
你可以使用items属性,然后删除你不希望显示,并通过新的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];
,因为你是用setItem发送阵列是不是有什么功能这并不在这里工作预计。
我不得不更换行:
NSArray *finalTabBarArray = [[NSArray alloc] initWithObjects:newToolBarArray, nil];
这一个:
NSArray *finalTabBarArray = [newToolBarArray copy];
然后,它完美的作品。
Mohit的答案是我用过的,但你不需要专门使它成为工具栏设置的NSArray。您可以将项目数组设置为NSMutableArray。没有真正的优势,我知道,但它少了几行代码。这样你就可以使用数组并移动UIButton对象,就像使用对象创建任何其他数组一样,然后使用该可变数组重置工具栏。
[newToolBarArray removeObjectAtIndex:2];
[newToolBarArray removeObjectAtIndex:1];
[toolBar setItems:newToolBarArray];
,而不是指数的猜测,我加了的UIBarButtonItem一个IBOutlet,然后按名称删除它:
NSMutableArray *toolBarButtons = [self._toolbar.items mutableCopy];
[toolBarButtons removeObject:self._selectButton]; // right button
[self._toolbar setItems:toolBarButtons];
当然,它有助于出口连接在设计师:)
非常简洁的尼科,即使您的属性的非正统变量命名。通常,“_”与自动合成的变量相关联,而不是属性本身。 ;) – 2014-10-10 16:18:53
我知道这是很老线程,但那些谁看这个网页的解决方案,在这里你去:
随着iOS7,您可以用这种方式来显示/隐藏工具栏的屁股于:
if(// your code Condition)
{ self.toolbarBtn1.enabled = YES;
self.toolbarBtn1.tintColor = nil; }
else
{ self.toolbarBtn1.enabled = NO;
self.toolbarBtn1.tintColor = [UIColor clearColor]; }
稀释是,这个工程。出于某种原因,我原本以为它不会,但它确实如此。谢谢! – jmurphy 2010-06-05 19:41:03
@jmurphy:不客气!很高兴你有它的工作。 – 2010-06-05 20:12:06
似乎太多工作只是为了隐藏一个按钮,但它的工作原理。 – 2011-11-30 04:49:02