2012-04-29 31 views
0

這是我第一次在這裏尋求一些幫助,儘管過去6個月我一直在這個論壇上潛伏。所以這裏是一個簡單的答案,我知道它以前曾被問過很多次,但沒有一個答案真的有幫助。希望可能有人在這裏誰友善可以幫助我和許多其他人需要這個有用的提示。使用一個輕擊手勢隱藏/取消隱藏Xcode中的按鈕或插座

所以這是我已經沒有隱藏網點:

在頭文件:

@interface tapgestureViewController : UIViewController { 

IBOutlet UIButton *btn1; 
IBOutlet UIButton *btn2; 
IBOutlet UITextView *text; 

} 

-(IBAction)hideOutlets; 

@end 

並在實現文件:

-(IBAction)hideOutlets:(UITapGestureRecognizer*)singleTap { 

btn1.hidden = YES; 
btn2.hidden = YES; 
text.hidden = YES; 

} 

我簡單的問題是:如果用戶再次點擊屏幕,如何取消隱藏/顯示插座?

回答

1

我認爲要做到這一點最簡單的方法是使用:

-(IBAction)hideOutlets:(UITapGestureRecognizer*)singleTap 
{ 
    btn1.hidden = !btn1.hidden; 
    btn2.hidden = !btn2.hidden; 
    text.hidden = !text.hidden; 
} 

這隻會否定當前的布爾狀態,你就大功告成了:)

編輯: 要檢查觸摸是在窗體上的某處,但不是在按鈕或文本字段嘗試使用此。它應該工作。無需再使用UITapGestureRecognizer

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    CGPoint loc = [touch locationInView:[touch view]]; 
    if (!(CGRectContainsPoint(btn1.frame, loc) || CGRectContainsPoint(btn2.frame, loc) || CGRectContainsPoint(text.frame, loc))) 
    { 
     btn1.hidden = !btn1.hidden; 
     btn2.hidden = !btn2.hidden; 
     text.hidden = !text.hidden; 
    } 
} 
+0

萬分感謝這個簡單的答案,它的確很容易理解。我前幾天看過這個代碼,但它很愚蠢,我認爲它不起作用,現在我很開心。再次感謝。 – redribbon

+0

對不起,但一些錯誤發生在這裏,當我點擊按鈕時,所有其他網點也隱藏,甚至當我已經把一些行動,按鈕(改變到另一個視圖),它只是保持隱藏/取消隱藏,並沒有給對另一個分配的語法進行響應syntax.please help :( – redribbon

+0

我編輯了你的答案 – Majster