2014-10-06 98 views
0

我试图实现一种方法来检测tableview或collectionview的选择,而不需要委托方法。基于UICollectionViewCell块的选择

我使用KVO为selected,但也滚动时(委托调用不滚动时执行)selected属性更改。

你有什么想法如何做到这一点?

我当前的代码如下所示:

- (void)observeValueForKeyPath:(NSString *)keyPath 
        ofObject:(id)object 
         change:(NSDictionary *)change 
         context:(void *)context{ 
    if ([keyPath isEqualToString:@"selected"]) 
    { 

     if (self.selected) { 
      dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
       self.selected = NO; 
      }); 
      [self cellPressed]; 
     } 
    } 
} 

我的init方法包括:

[self addObserver:self forKeyPath:@"selected" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil]; 

我的dealloc方法包括:

[self removeObserver:self forKeyPath:@"selected"]; 

回答

0

您还可以使用点触手势。将uiview放在uicollectionviewcell上并在其上添加轻击手势。

+0

实际上改变了与滚动视图的交互 – 2014-10-12 22:12:31