Как получить коллекцию кнопок внутри заголовка tableview - PullRequest
0 голосов
/ 08 мая 2020

Как иметь коллекцию кнопок тегов внутри заголовка tableview

, которые прокручиваются по горизонтали и с множественным выбором.

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Простой способ реализовать эту функциональность -

  1. Создать класс ViewContoller, внутри которого есть объект UITableView. Назовем этот класс TableVC ( Код здесь )
  2. Создайте класс заголовка для этого tableView. Назовем его TableHeader ( здесь код )
  3. Создайте объект collectionView внутри этого заголовка tableView, как показано в коде, опубликованном в пункте 2.
  4. Создайте CollectionViewCell класс, который имеет объект UIButton в качестве вашего тега ( здесь код )
  5. Наконец, создайте класс TableViewCell, чтобы делать то, что предлагает ваш дизайн. В моем примере я только что создал здесь объект UILabel, чтобы показать имя тега, который был нажат / выбран ( здесь код )

Вот ссылка на рабочий проект, который я создал и разместил на GitHub. Не стесняйтесь клонировать его и поиграть - https://github.com/animeshkmar/HorizontalTagsDemoApp.git

Я создаю свой пользовательский интерфейс программно, но вы также можете сделать это очень легко с помощью раскадровки.

Кроме того, Я передал функцию refreshTableVC из класса TableVC в CollectionViewCell в качестве закрытия. Вы также можете добиться этого с помощью делегатов и протоколов. Я просто считаю закрытие более простым. Дополнительные идеи об этом предпочтении можно найти в этой проницательной статье Марина Бенчевича.

0 голосов
/ 08 мая 2020
func tableView(_:viewForHeaderInSection:) -> UIView {

    let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: <"HeaderView">)
    headerView.tag = section
    return headerView
}

Используйте этот метод UITableViewDelegate, чтобы создать настраиваемое представление для вашего заголовка.

Подкласс UITableViewHeaderFooterView в качестве вашего пользовательского UIView. Пользовательский вид должен иметь горизонтальную прокрутку с кнопками.

...