隐藏工具栏问题



我看过其他的答案并写了这样的代码:

-(IBAction)tbutton:(id)sender
{
tb1 = [[[UIToolbar alloc] init] autorelease];
tb2 = [[[UIToolbar alloc] init] autorelease];   
if (tb1.hidden == YES && tb2.hidden == YES)
{
tb1.hidden = NO;
tb2.hidden = NO;
//toolbars implementation codes here//
}
else 
{
tb1.hidden = YES;
tb2.hidden = YES;
//toolbars implementation codes here//
}
}

我不想在加载应用程序时显示两个工具栏,但我想在点击UIButton *toolbarbutton的选择器动作tbutton:时显示工具栏,但它什么也没发生。NSLog只显示"else",没有"if"…我还没有设置tb1的布尔值。和tb2。隐藏在任何地方,只在这个动作函数中。

我还希望工具栏消失时,点击按钮和工具栏已经出现。


编辑2011年8月31日:

我遵循gamozzii和Maxner的建议,但我仍然有同样的问题。有解决这个问题的方法/建议吗?


编辑2011年10月16日:

我认为它与alloc, init和autorelease有关。我将尽我所能研究他们,并发表我的答案来解决这个问题:)

你在你的操作方法中分配你的工具栏对象吗?(还是打错了?)

隐藏属性的默认值是NO,所以在你分配工具栏后,它将有一个"NO"的值用于隐藏-你需要显式地将其设置为YES以将其更改为隐藏。

我怀疑你想在你的viewDidLoad方法中分配你的UIToolbar对象,并在那里设置隐藏属性为YES,然后像上面一样实现你的动作方法,但没有UIToolbar分配行。

。在头文件

IBOutlet UIToolbar *tb1;
IBOutlet UIToolbar *tb2;
@property (nonatomic, retain) IBOutlet UIToolbar *tb1;
@property (nonatomic, retain) IBOutlet UIToolbar *tb2;

实现文件

-(void)viewDidLoad {
        self.tb1 = [[UIToolbar alloc] init] autorelease];
        self.tb2 = [[UIToolbar alloc] init] autorelease];
        self.tb1.hidden = YES;
        self.tb2.hidden = YES;
 }
-(IBAction) tbutton:(id)sender {
   if (tb1.hidden == YES && tb2.hidden == YES)
   {
       tb1.hidden = NO;
       tb2.hidden = NO;
       //toolbars implementation codes here//
   }
   else 
   {
       tb1.hidden = YES;
       tb2.hidden = YES;
       //toolbars implementation codes here//
   }
}

我建议使用alpha而不是hidden。所以tb1.hidden = YES变成了tb.alpha = 0 hidden = NO变成了alpha = 1

最新更新