2013-03-17 166 views
1

我正在嘗試構建我的第一個iphone應用程序,請幫助我解決此問題!我有我的scrollview作爲我的控制器的視圖的子視圖和一些控件,如標籤,按鈕,textfield和tableview已被放置爲這個滾動視圖的子視圖。現在當我點擊按鈕時,我的表格視圖變得可見,但當我在桌面視圖外點擊時(我的意思是在滾動視圖上點擊時),我無法關閉此桌面視圖。從外部刪除其他子視圖時的子視圖

下面是我的代碼片段通過',我試圖解僱我的桌面, 請幫我!

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *aTouch = [touches anyObject]; 
    if (aTouch.tapCount == 1) 
    { 
     CGPoint p = [aTouch locationInView:self.scrollview]; 
     if (!CGRectContainsPoint(myTableView.frame, p)) 
     { 
      myTableView.hidden = YES; 
     } 
    } 
} 

回答

0

你把這個代碼中ViewController.m,所以,它只是活躍,當你敲擊self.view.Your滾動視圖疊加您self.view,這樣的行動不積極。

子類的滾動視圖,並在您的IB選擇類型,裏面YourScrollView.m,添加以下代碼:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *aTouch = [touches anyObject]; 
    if (aTouch.tapCount == 1) 
    { 
     CGPoint p = [aTouch locationInView:self]; 
     for (UIView *aView in self.subviews) { 
      if (([aView isKindOfClass:[UITableView class]])&&(!CGRectContainsPoint(aView.frame, p))) 
      { 
       [aView setHidden:YES]; 
      } 

     } 
    } 
} 
+0

喜AAA,thanku,有ü爲我提供了子類滾動視圖的核心思想來解決這個問題,並且制定出來,比很多! – XiOS 2013-03-18 16:14:46

+0

不客氣。 – 2013-03-18 16:17:31