Я предполагаю, что если бы вы мыслили очень креативно, вы могли бы придумать способ существенно поменять свойство backgroundView в UITableView, поскольку видны разные разделы.Это не кажется мне особенно элегантным, учитывая, что несколько разделов могут занимать видимый экран одновременно, но, возможно, я не совсем ясно понимаю вопрос.
Короткий ответ: нет определенного /простой способ добиться этого.Композиция раздела далека от фона UITableView, и, по сути, архитектура не настроена на то, что вы хотите.Я не предполагал бы знать детали вашей реализации, но я также призываю к осторожности: визуальные и архитектурные характеристики UITableView довольно хорошо продуманы.Мое личное мнение (опять же, я не видел, над чем вы работаете), это то, что различные фоновые разделы могут во многих случаях перегружать пользовательский интерфейс.Я также могу видеть случаи, когда это может быть хорошим прикосновением к пользовательскому интерфейсу при правильном выполнении.
В этом случае, если вы все еще хотите это сделать, вот подход, который я бы выбрал:
По сути, вы будете наблюдать за положением ячеек своего табличного представления.Вы можете сделать это в ячейке scrollViewDidScroll или tableViewWillDisplay - или в других местах, я уверен.Но вам нужно знать, какие ячейки прокручиваются на экране и за его пределами, и затем вам нужно будет спросить у самой верхней видимой ячейки, что это за раздел.После того, как вы определили, какой именно раздел вы должны отображать в данный момент, вы можете использовать его для прокрутки собственного набора представлений, представляющих фон каждого раздела.
По сути, вы собираетесь создать каждый динамический раздел.Фоновые представления в коде, только UIView, каждый со своим backgroundProperty, установленным на повторяющийся шаблон (очевидно, высоты будут динамическими).Добавьте все свои подпредставления фона раздела (или, предпочтительно, сделайте это лениво) в backgroundView вашего UITableView.
Теперь, когда прокручивается представление прокрутки, вы будете наблюдать, какие строки и разделы входят и выходят из представления таблицы.Поскольку строки в разделах прокручиваются, вычислите высоту фона раздела (умножьте количество строк в разделе на их высоту) и отрегулируйте его ось Y, которая расположена, но обрезана backgroundView вашего tableView.По мере прокрутки разделов вы будете обновлять смещение по оси Y для фона соответствующего раздела.Фу!
Другая идея может состоять в том, чтобы бросить все фоновые представления вашего раздела, расположенные вертикально, в UIScrollView, взаимодействие с пользователем отключено.Поместите это представление прокрутки в backgroundView вашего табличного представления, а затем разберитесь с математикой, чтобы по существу «переслать» события прокрутки из представления прокрутки в табличном представлении в ваше представление прокрутки в фоновом режиме.
Для поиска, вероятно, потребуется немного работыреализация, обеспечивающая плавную и синхронизированную анимацию, но я думаю, что такой подход можно использовать.