Поделиться через


Компоненты и функции таблиц в Xamarin.iOS

UiTableView может иметь стиль "сгруппирован" или "обычный" и состоит из следующих частей:

На этих снимках экрана показано, как отображаются строки разделов, верхние колонтитулы, элементы управления редактирования и индекс.

На этих снимках экрана показано, как отображаются строки разделов, верхние колонтитулы, элементы управления редактирования и индекс

Эти части подробно описаны ниже.

Заголовок раздела

Ячейки можно при необходимости сгруппировать в разделы, помеченные настраиваемым заголовком и(или) нижним колонтитулом. Заголовок можно задать со строковым значением или настраиваемым представлением, чтобы разрешить другой макет или стиль.

Cells

Ячейки — это основной элемент пользовательского интерфейса для таблицы. При правильной реализации ячейки повторно используются для повышения эффективности памяти. Существует четыре встроенных стиля ячеек, и вы можете создать собственные пользовательские ячейки в коде или в конструкторе при использовании раскадровки.

Дополнительный нижний колонтитул раздела можно задать со строковым значением или настраиваемым представлением, чтобы разрешить другой макет или стиль. Заголовки и нижние колонтитулы разделов можно задать независимо.

Индекс

Индекс отображается как полоса символов вниз по правому краю таблицы. Касание или перетаскивание индекса ускоряет прокрутку до этой части таблицы. Индекс является необязательным, но рекомендуется для навигации по длинным спискам. Индекс обычно не используется с сгруппированных стилей.

Режим редактирования

Доступны несколько различных функций редактирования:

  • Проводите пальцем, чтобы удалить отдельные ячейки.
  • Ввод режима редактирования для отображения кнопок удаления на каждой строке
  • Ввод режима редактирования для отображения дескрипторов повторного заказа.
  • Вставка новых ячеек (с анимацией).

Оставшаяся часть этого документа показывает, как реализовать все эти функции UITableView с помощью Xamarin.iOS.

Общие сведения о классах

Ниже показаны основные классы, используемые для отображения представлений таблиц:

Основные классы, используемые для отображения представлений таблиц, показаны здесь

Назначение каждого класса дано ниже.

  • UITableView — представление, содержащее коллекцию ячеек в контейнере прокрутки. Представление таблицы обычно использует весь экран в приложении i Телефон но может существовать как часть более крупного представления на iPad (или отображается во всплывающем окне).
  • UITableViewCell — представление, представляющее одну ячейку (или строку) в представлении таблицы. Существует четыре встроенных типа ячеек, и можно создавать пользовательские ячейки как в C#, так и в конструкторе iOS.
  • UITableViewSource — Xamarin.iOS-эксклюзивный абстрактный класс, предоставляющий все методы, необходимые для отображения таблицы, включая количество строк, возвращая представление ячеек для каждой строки, обрабатывая выбор строк и многие другие необязательные функции. Чтобы получить рабочая версия UITableView, необходимо подкласс.
  • NSIndexPath — содержит свойства строк и разделов, которые однозначно определяют положение ячейки в таблице.
  • UITableViewController — готовый к использованию UIViewController , имеющий жесткое кодирование UITableView в качестве представления и доступного через свойство TableView.
  • UIViewController — если таблица не занимает весь экран, можно добавить UITableView в любой UIViewController с соответствующим набором кадров.

UITableViewSource заменяет следующие два класса, которые по-прежнему доступны в Xamarin.iOS, но обычно не требуются:

  • UITableViewDataSource — Objective-C протокол, моделиируемый в Xamarin.iOS как абстрактный класс. Необходимо подклассить, чтобы предоставить таблицу с представлением для каждой ячейки, а также сведения о верхних, нижних колонтитулах и количестве строк и разделов в таблице.
  • UITableViewDelegate — Objective-C протокол, моделируемый в Xamarin.iOS как класс. Обрабатывает выбор, редактирование функций и другие необязательные функции таблицы.

В этом документе все примеры используют UITableViewSource и игнорируют эти два класса. Они упоминание здесь, так как любые Objective-C примеры, найденные в документации Apple, будут ссылаться на них, поэтому полезно понять, что они делают (и что можно использовать Xamarin.iOS UITableViewSource).