我试图实现一种检测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"];
答案 0 :(得分:0)
你也可以在uicollectionviewcell上使用tap gesture.put uiview并在其上添加点击手势。