[英]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.