У меня есть проект, в котором мне нужно отобразить несколько экземпляров UITableView
внутри одного и того же представления на iPad.Они также могут быть повернуты, но я уверен, что это не имеет значения.Пользователь должен не знать, что представление состоит из нескольких табличных представлений.Поэтому я хотел бы сделать так, чтобы при прокрутке одного вида таблицы другие прокручивались одновременно с ним.
Поскольку UITableView
является подклассом UIScrollView
, я решил, что справлюсьUIScrollViewDelegate
методов и передайте их всем табличным представлениям.К сожалению, хотя я могу записывать некоторые события, степень детализации вызова метода недостаточно хороша, и у меня возникают проблемы при передаче этих сообщений в другие представления таблиц.Самое близкое, что я могу получить, это реализовать -scrollViewDidScroll:
, а затем вызвать -setContentOffset:animated
для каждого табличного представления.Если я пытаюсь отправить это сообщение для всех возможных случаев, я в конечном итоге блокирую, потому что -scrollViewDidScroll
получает вызов для моих -setContentOffset:animated
вызовов, поэтому я в конечном итоге зависаю.В любом случае, если я устраню блокировку, используя только этот метод для обнаружения прокрутки в одном табличном представлении и затем передавая ее в другие табличные представления, я обнаружу, что, хотя другие табличные представления в конечном итоге прокручиваются в то же место, они отстают на секунду илидва.
Вот пример проекта, который я создал.
Как реализовать это поведение без создания подкласса UITableView
?