UITableViewCell
指を通すとハイライトは出来ますか?それを押し下げたときだけでなく、指がすでに画面を横切ってテーブルビューセルの上を走っているときですか?すべてのジェスチャ認識機能 (を含むUILongPressGestureRecognizer
) を試しましたが、うまくいきませんでした。
質問する
90 次
2 に答える
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];
}
}
}
于 2012-10-10T03:40:13.710 に答える
0
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];
}
これをテストしたところ、探しているものとまったく同じように機能します。
編集:急いでいなければ、型キャストの前に内省を行っていたでしょう。
于 2012-10-10T03:52:13.653 に答える