2014-10-06 74 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