2012-04-23 3 views
1

У меня есть UITableView, и я нажимаю строку, но не отпускаю палец, поэтому didSelectRowAtIndexPath еще не вызывается, не так ли?Iphone: UITableView, как определить, что строка выбрана

  1. Как определить, на какой строке я нажал? в каком методе?
  2. Как обнаружить, что я нажал на вид таблицы? Есть ли какой-либо метод, например rowIsPressed? или onTableViewTouchDown?

ответ

2

Есть два варианта, по крайней мере:

1) Вы можете создать подкласс UITableViewCell и не использовать touchhandling вы знаете из UIView по умолчанию. (Например, touchesBegan: и т. Д.)/ИЛИ добавить пользовательский uiview в качестве contentView таблицы.

2) Добавьте указатель gesturer для каждой таблицы.

Чтобы узнать, в какой строке вы, вы могли бы дать каждой строке тег (который, чем относится к ряду) в cellForRow:atIndexPath:

0

попробовать это

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath   *)indexPath 
+0

Нет, это звонки после того, как я выпустил палец – Jim

0

Там нет такого метода для обнаружения выбранного состояния, прежде чем поднимать палец ... Я думаю, вы должны переопределить класс UITableView и добавить UIGestureRecognizer к нему. А по поводу второго вопроса, я думаю, вы говорите об этом табличном методе вида делегата:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

Но есть и другой метод, который даст вам текущую выбранную строку. Это он (непосредственно из класса просмотра таблицы):

- (NSIndexPath *)indexPathForSelectedRow 

Надеюсь, что помогло!

Смежные вопросы