UITableView сенсорное событие - PullRequest
       5

UITableView сенсорное событие

2 голосов
/ 08 августа 2011

Вот сценарий:

У меня есть UITableView и UITextView, добавленные как подпредставления в UIView. Когда пользователь касается какой-либо строки, я хочу 2 вещи - resignFirstResponder для UITextView и я хочу добавить тип попкорна UIView для конкретной строки.

Это сделано.

Но мне нужна та же функциональность resignFirstResponder для UITextView, когда пользователь касается области tableView, где нет строк.

Как это сделать, есть ли метод tableView, который позволяет мне обрабатывать касания в области, где нет строк?

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Что вам нужно сделать, это создать пользовательский UITableView. (подклассы UITableView, путем создания нового файла)

Переопределить метод 'touchesBegan' этого пользовательского tableView (что мы можем сделать, потому что UITableView является подклассом UIView)

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

     //resignFirstResponder for the UITextView

     //call didSelectRow of tableView again, by passing the touch to the super class
     [super touchesBegan:touches withEvent:event];
}

Что мы делаем, так это то, что мы переопределяем, как UITablView ловит прикосновение. Мы можем сделать это в методе touchesBegan, поскольку UITableView является подклассом самого UIView.

Таким образом, мы можем переопределить метод touchesBegan, чтобы поймать касание UITableView, а затем передать его дальше суперклассу нашего пользовательского tableView, который равен UITableView, так что его 'didSelectRow 'метод вызывается.

0 голосов
/ 08 августа 2011

Не проверял, но я думаю, что вы могли бы добавить touchevent к backgroundView таблицы просмотра. Вы можете получить доступ к фоновому виду с помощью tableView.backgroundView

Надеюсь, это поможет

...