Перегляди заголовків таблиці в дошках розповідей


Відповіді:


349

Схоже, що один перетягує елемент керування на верхню частину подання таблиці. Я не очікував, що це буде так просто.

Перед падінням

Перед падінням

Після краплі

Після краплі


29
Я здивовано виявив, що так це робиться. У своїй реалізації я помітив, що для правильної роботи мені довелося видалити свій код висотиForHeaderInSection: (NSInteger), інакше я отримав би додатковий простір над самим видом заголовка. Крім того, для того, щоб цей заголовок "дотримувався" у верхній частині подання таблиці, мені довелося реалізувати розділ viewForHeaderInSection: (NSInteger) і повернути це подання.
ozz

13
Це, здається, працює, лише якщо у вас є хоча б одна комірка-прототип.
Accatyyc

4
@cdo, чи можете ви детальніше пояснити, як вам вдалося отримати заголовок, щоб він "приклеївся" у верхній частині таблиці? Я спробував сліпо реалізувати, viewForHeaderInSection:і у мене з’явилася помилка, сказавши «Неможливо одночасно задовольнити обмеження». (Див моє запитання тут: stackoverflow.com/questions/14554051 / ... )
ryanrhee

2
Дякую, я не міг цього зробити, поки не знав, що це спрацює, потрібна точність перетягування. Я б намагався це зробити кілька разів ...
Дейв Росс

1
Ви можете використовувати контур ліворуч, щоб зробити перетягування, що простіше зробити, ніж намагатися потрапити на точне місце над першою коміркою прототипу, якщо ви хочете встановити подання заголовка таблиці. Я помітив - можливо помилка Xcode (5.0) - що це спрацює лише тоді, коли я спершу перемістив погляд із звичайної ієрархії; Я перетягнув це до кінця контуру для цієї сцени. Потім, на другому кроці, я міг перемістити його на подання таблиці.
Даніель Шнеллер

10

Це можна зробити легко, перетягнувши UIView/ UIImageViewтрохи нижче UITableViewконтуру документа (замість макета).

Якщо ви спробуєте перетягнути макет замість документа, контур UITableViewCellперейде до верхньої обробки, яка засмучує!


-2

Перетягування та опускання виду вгорі на табличному огляді працювало лише на один розмір екрана, принаймні, у Xcode 11. Він не розміщувався добре на різних екранах.

Я щойно створив подання і залишив його там за столовим переглядом у розгорнутій частині. Я створив для нього IBOutlet:

@IBOutlet weak var audioView: UIView!

Потім у коді tableview я зробив:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return audioView
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 142
}

Він добре працював на всіх розмірах екрана.


1
Питання стосується перегляду заголовка таблиці, а не переглядів заголовка розділу.
Р. Рінкон

@R. Rincón, Де я згадав заголовок розділу? Розділ у методах необхідний з основи. Кожен TableView має принаймні один розділ, якщо ви цього не знаєте. Просто пройдіть розділ 0 Якщо у вас немає розділів.
Бадр

Цей код повертає аудіовигляд для кожного розділу як заголовок розділу. Якщо хтось реалізує це, tableView.tableHeaderView буде нульовим. Якщо у них 5 секцій, вони матимуть п'ять заголовків розділів. Якщо вони вже мають заголовки розділів і хочуть додати перегляд заголовка таблиці, ця відповідь їм не допомагає. Це не дає відповіді на запитання, яке конкретно згадується tableHeaderView.
Р. Рінкон

Ви можете вказати вигляд заголовка для кожного розділу з певною логікою всередині методу. TableViews побудований з урахуванням розділів. У вас завжди є розділи, якщо їх немає, то це був би розділ 0. Немає способу вказувати перегляд заголовка без вказівки розділу.
Бадр

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.