2014-04-23 33 views
0

我有表视图与结构自定义单元格(ContentView->的UIView(名稳压器))如何阻止uipangesturerecognizer在UITableViewCell中,当表视图滚动

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panRecognized:)]; 
[panRecognizer setDelegate:self]; 
[self.Regulator addGestureRecognizer:panRecognizer]; 

当我在的tableView细胞我的手指下滚动移动panRecognizer。我只需要在tableview停止滚动时滚动单元格

回答

0

UITableViewUIScrollView的子类。所以,你的panRecognized方法里面,你可以检查,

-(void) panRecognized :(UIPanGestureRecognizer *) gesture 
{ 
    if([tableView isDecelerating] == FALSE) 
    { 
      //Do your stuff... 
    } 
} 
+0

在单元格中定义的“panRecognized”方法,而不是在viewcontroller中。 Cell不知道tableView。 –

2

检查表视图滚动:

if (!tableView.isDragging && !tableView.isDecelerating) 
{ 
    // the table is *not* scrolling implement you logic here 
} 
+0

在单元中定义的“panRecognized”方法,不在viewcontroller中。 Cell不知道tableView。 –

+0

在您的panRecognized:方法中添加此项以检查表视图是否首先滚动。 – Pancho

+0

单元格没有属性tableView,这是行不通的; –

0

你应该始终贯彻这种代码在您的视图控制器,而不是在你的UITableViewCell类。

这是一个有点哈克的做法,我不会使用它,但应该为你

首先做的伎俩添加私有实例到的tableView对象

@implementation MyCustomCell 
{ 
    UITableView *tblView; 
} 

在你的代码在这里:

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panRecognized:)]; 
[panRecognizer setDelegate:self]; 
[self.Regulator addGestureRecognizer:panRecognizer]; 

加入这行代码:

tblView = [[self superview]superview]; 
再次

if(!tblView.isDragging && !tblView.isDecelerating) 
{ 
    // do your stuff here 
} 

我会建议你做的viewController这个:

然后在您的panRecognized方法,你可以执行以下检查。快乐的编码!

0

斯威夫特解决方案: 下面是我的代码段,其中的工作相当不错,在SWIFT 3.0

//此方法帮助我停止了的UITableViewCell的上/下pangesture,只允许垂直滚动

override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { 
    if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer { 
     let translation = panGestureRecognizer.translation(in: superview!) 
     if fabs(translation.x) > fabs(translation.y) { 
      return true 
     } 
     return false 
    } 
    return false 
} 
相关问题