簡體   English   中英

隱藏按鈕Obj-C

[英]Hiding a button Obj-C

我想在我的iphone應用程序上隱藏一個按鈕,然后通過單擊另一個按鈕將出現它。 我設法通過單擊使按鈕消失,但無法找出相反的方向。 您可能會告訴我,我對Objective-C還是陌生的,所以任何有關改進我的代碼的技巧都將有所幫助。 謝謝!

。H :

@property(nonatomic,retain) IBOutlet UIButton* button1 ;


-(IBAction)buttonTouch:(id)sender ;

.m:

@synthesize button1=_button1;

-(BOOL)hideOutlets {    
    _button1.hidden=TRUE;
}

-(void)buttonTouch:(id)sender {
    _button1.hidden =  !_button1.hidden;
}

從頭開始,如果要隱藏按鈕,請將其屬性hidden為YES,否則,如果要使其重新出現,則將該屬性設置為NO。

例:

button1.hidden=YES;
button1.hidden=NO;

您的代碼基本上是正確的

-(void)buttonTouch:(id)sender {
    _button1.hidden =  !_button1.hidden;
}

此代碼將在顯示按鈕時將其隱藏,而在隱藏時將其顯示。 這應該是正確的。

你是說

然后單擊另一個按鈕,它將出現

您確定兩個按鈕都具有與此操作正確連接的內部觸摸事件嗎? 我想您的問題是,當您觸摸另一個按鈕時,不會調用buttonTouch:

 @synthesize button1=_button1;
    -(BOOL)hideOutlets {

    _button1.hidden=TRUE;

}

-(void)buttonTouch:(id)sender {

        _button1.hidden = FALSE; //Or "NO" or "0", it's a boolean 
}

此外,將按鈕設置為BOOL隱藏起來很奇怪。 如果要在加載時隱藏它們,請放_button1.hidden = YES; 如果希望僅在可見時將其隱藏,請使用

-(void)buttonTouch:(id)sender {
if(_button1.hidden == YES) 
    {
        _button1.hidden = NO; 
    }
else { _button1.hidden = YES; }
 }

據我了解,我將嘗試正確回答問題。

2個按鈕,button1和button2。 按下button1隱藏自己並顯示button2。 按下button2隱藏自身並再次顯示button1。

-(IBAction)button1Pressed:(id)sender {
    // button1 can only be pressed when not hidden, so we can dispense with checks for hidden
    [button1 setHidden:YES];
    [button2 setHidden:NO]; // assuming this button was hidden at startup
}

-(IBAction)button2Pressed:(id)sender {
    // button2 can only be pressed when not hidden, so no need to check for hidden
    [button2 setHidden:YES];
    [button1 setHidden:NO];
}

這應該允許您在按鈕之間來回切換,以使它們彼此隱藏/顯示。

所提供的代碼存在兩個明顯的問題。

1)可可對布爾值(TRUE和FALSE)使用YES和NO。

2)您已經聲明了一個屬性,因此應優先於綜合實例變量使用它。

3)您的按鈕觸摸方法應在實現以及界面中返回IBAction。

不知道這是否可以解決您的問題,但這是修正代碼的第一步。

@synthesize button1=_button1;

-(BOOL)hideOutlets {

    self.button1.hidden=YES;

}

-(IBAction)buttonTouch:(id)sender {

    self.button1.hidden =  !self.button1.hidden;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM