当手指经过时,是否可以制作UITableViewCell
高光?不只是当它向下按下它,而是当手指已经滑过屏幕并在桌面视图上运行时?我已经尝试了所有的手势识别器(包括UILongPressGestureRecognizer
)并且没有任何运气。
答案 0 :(得分:1)
尝试使用此功能,它类似于评论中提到的问题:
(在你的viewController中)
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
//assuming UITableView named tableView
UITableViewCell *tableViewCell;
CGPoint touchedPoint = [[touches anyObject] locationInView:self.view];
for (int C = 0; C < [tableView numberOfRowsInSection:0]; C++) {
//this should loop through all cells in your tableview
tableViewCell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathWithIndex:C]];
if (CGRectContainsPoint(tableViewCell.frame, touchedPoint)) {
[tableViewCell setHighlighted:TRUE];
}
else {
[tableViewCell setHighlighted:FALSE];
}
}
}
答案 1 :(得分:0)
in cellForRowAtIndexPath:
UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
[recognizer setDirection:UISwipeGestureRecognizerDirectionRight];
[cell.contentView addGestureRecognizer:recognizer];
...然后
- (void)handleSwipe:(id)sender
{
UISwipeGestureRecognizer *recognizer = (UISwipeGestureRecognizer *)sender;
UIView *contentView = [recognizer view];
UITableViewCell *cell = (UITableViewCell*)[contentView superview];
[cell setSelected:YES];
}
我刚测试了这个,它的工作方式与你想要的完全一样。
编辑:如果我没有匆忙,我会在打字之前做一些反省。