2012-09-14 62 views
6

我已經添加了兩個滑動手勢識別器(向左滑動並向右滑動)到我的UITableView。之後,我的表格視圖停止滾動。在同一時間-(void)didSelectRowAtIndex工作正常。 可能是什麼問題?iPhone - UIGestureRecognizer防止UITableView滾動Xcode 4.5

我所做的只是將對象庫中的滑動手勢識別器拖放到我的UITableView上。

如果我刪除它們,我的表格就會開始再次滾動。

UPD:

這種情況發生在升級到4.5的Xcode後。舊版本的Xcode沒有這樣的問題。 要避免此行爲 - 以編程方式添加UIGestureRecognizers,而不是IB。 = NO

回答

6

只是嘗試婁代碼手勢識別cancelsTouchesInView的

+2

是的,它在編程添加它們後工作。更新到Xcode 4.5 – Oleg

+0

我可以通過編程添加它來確認它的工作原理。 – Leonardo

1

集屬性可能這個幫助你.... 寫婁代碼在viewDidLoad:方法

UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something 
swipeGestureObjectImg.numberOfTouchesRequired = 1; 
swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft); 
[yourView addGestureRecognizer:swipeGestureObjectImg]; 

UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something 
swipeGestureRightObjectImg.numberOfTouchesRequired = 1; 
swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight); 
[yourView addGestureRecognizer:swipeGestureRightObjectImg]; 

如果這裏的tableview是UIView類的子視圖然後使用上面的代碼,否則只是嘗試「youttableview」insted的「yourView」

我希望這可以幫助你...

:)

+0

它沒有幫助.. – Oleg

+0

是的,你是對的,但它在Xcode 4.5沒有幫助(如果你以編程方式添加它):( – DanSkeel

1

我有同樣的問題: 我用我的TabGestureRecognizer直接拖到故事板,而不是通過代碼創建它們。現在iOS6似乎打破了滾動。

我更願意將視圖,手勢等直接添加到故事板而不是通過代碼。

,您仍然可以做到這一點,但有兩個變化:

1)引用出口收藏

  • 右鍵單擊GestureRecognizer這你能看到現場的船塢內。
  • 清除部分引用出口類別

2)通過代碼

  • 附上GestureRecognizer現有視圖爲您GestureRecognizer創建出口
  • 添加viewDidLoad方法中下面的行:

    [self.tableView addGestureRecognizer:_tabGesture];

0

我面臨同樣的問題,我通過將手勢識別器鏈接到視圖而不是表視圖來解決此問題。

  1. 顯示故事板。
  2. 顯示連接檢查器。
  3. 顯示文檔大綱。
  4. 在視圖控制器下的手勢識別器和視圖節點之間的「引用出口集合」處創建新鏈接。

問候。 佩德羅。