2010-07-23 68 views
0
從雙擊呈現UIActionSheet

我提出一個UIActionSheet當用戶雙擊水龍頭我的牢房:問題中的UITableViewCell

點擊識別細胞初始化:

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] 
              initWithTarget:self 
              action:@selector(handleDoubleTap:)]; 

     [doubleTap setNumberOfTapsRequired:2]; 
     [self addGestureRecognizer:doubleTap]; 
     [doubleTap release]; 

告訴委託來處理自來水:

- (void)handleDoubleTap:(UITapGestureRecognizer *)recognizer { 
    NSLog(@"double oo"); 
    [delegate handleDoubleTapp]; 
} 

現在這是我的代表會的UITableViewController呈現UIActionSheet:

-(void)handleDoubleTapp{ 

     UIActionSheet *actionSheet = [[[UIActionSheet alloc] 
             initWithTitle:nil 
             delegate:self 
             cancelButtonTitle:@"Cancel" 
             destructiveButtonTitle:nil 
             otherButtonTitles:@"Reply", @"Retweet", @"Direct Message", nil] autorelease];  
     [actionSheet showInView:self.parentViewController.tabBarController.view]; 

    } 
} 

我的UITableViewController正確地實現了UIActionSheet委託方法。

問題:

  1. 不是actionsheet的所有區域響應
  2. 點擊一個按鈕呈現模式的看法,但actionsheet沒有得到解僱
  3. 當按鈕能夠被點擊,他們不會突出顯示

回答

0

就像一個想法:你是否嘗試在UIActionSheet即將變爲可見狀態時重新註冊UIGestureRecognizer並在交流時重新註冊工作表被解僱?也許識別器正在干擾觸摸。

+0

如何取消註冊識別器? – 2010-07-23 14:16:27

+0

我添加了:[識別器removeTarget:nil action:NULL];在handleDoubleTap中。這解決了這個問題,但是當我雙擊一個單元格後,我不能再次雙擊它。哪裏是正確的註銷地點?哪裏是正確的註冊地點? – 2010-07-23 14:23:04

+0

而不是刪除,我只是將啓用狀態設置爲false。顯示操作表後,在委託中重新啓用它。偉大的提示。 – 2010-07-23 14:45:55