基于UICollectionViewCell块的选择

时间:2014-10-06 08:52:54

标签: ios uicollectionview uicollectionviewcell

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

我在selected使用了KVO,但在滚动时(滚动时不执行委托调用)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"];

1 个答案:

答案 0 :(得分:0)

你也可以在uicollectionviewcell上使用tap gesture.put uiview并在其上添加点击手势。