Когда вы работаете с нетипичными вложенными настройками UITableView - где у вас есть внешний вертикальный UITableView, который содержит повернутые на 90 ° UITableViews (см .: Поиск библиотеки пользовательского интерфейса для горизонтального представления данных в iOS ):Есть ли способ заставить iOS обрабатывать вертикальные и горизонтальные касания одновременно ?
Я обнаружил, что iOS очень умна в обработке касаний: горизонтальные касания делаютсоответствующая горизонтальная прокрутка UITableView, в то время как вертикальная прокрутка делает внешнюю прокрутку UITableView.Отлично.
Только я хотел бы иметь возможность двигать пальцем по диагонали и одновременно видеть внешний UITableView и внутреннюю прокрутку UITableView.
Я попробовал несколько подходов (играя с canCancelContentTouches, delaysContentTouches и сенсорными сообщениями), но я не нашел способа сделать это.
РЕДАКТИРОВАТЬ: Вот проект XCode4, который показывает этоПоведение: http://marcanton.io/other/stackoverflow/nestedtableviews.zip
РЕДАКТИРОВАТЬ: Я отправил эту проблему в службу технической поддержки Apple для разработчиков, вот их ответ:
Спасибо, что написали в службу технической поддержки Apple Worldwide Developer.Я отвечаю на ваш запрос относительно событий касания во встроенных UITableViews.
Обычно такой подход не рекомендуется.Проблема заключается в том, что UITableView наследуется от UIScrollView и, как указано в документации для UIScrollView:
"Важно: не следует встраивать объекты UIWebView или UITableView в объекты UIScrollView. В этом случае может возникнуть непредвиденное поведение, поскольку сенсорные событияибо два объекта могут быть смешаны и неправильно обработаны. "
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html%23//apple_ref/occ/cl/UIScrollView
Так что на этот раз нет обходного пути для одновременной прокрутки обоих.
Я рекомендую вам подать запрос на улучшение на http://developer.apple.com/bugreporter/ с подробным описанием того, что вы хотели бы, чтобы мы добавили в будущем выпуске.
Тем не менее, я думаю, что необходимобыть способ включить эту функцию, хотя я понимаю, что это не рекомендуется.Фактически, Apple даже не рекомендует размещать UITableViews внутри другого UITableView, но, за исключением сделанного выше, он работает довольно красиво.Я буду держать этот вопрос в курсе наших коллективных выводов.
РЕДАКТИРОВАТЬ: Есть на самом деле способ, подробно здесь: http://marcanton.io/blog/nested-orthogonal-tableviews/