24响应和处理事件
- (void) addTapTarget:(id)target selector:(SEL)selecotr
{
self.userInteractionEnabled = YES;
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:target action:selecotr];
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;
[self addGestureRecognizer:tapGesture];
}
...
[self addTapTarget:self selector:@selector(handleTapGestrue:)];
...
- (void) handleTapGestrue:(UITapGestureRecognizer*)tapGestrue
{
CGPoint point = [tapGestrue locationInView:self];
NSArray* cells = _visibleCellsMap.allValues;
for (DZTableViewCell* each in cells) {
CGRect rect = each.frame;
if (CGRectContainsPoint(rect, point)) {
if ([_actionDelegate respondsToSelector:@selector(dzTableView:didTapAtRow:)]) {
[_actionDelegate dzTableView:self didTapAtRow:each.index];
}
each.isSelected = YES;
_selectedIndex = each.index;
}
else
{
each.isSelected = NO;
}
}
}Last updated