Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы WatchKit ссылка класса WKInterfaceTable

Опции
Развертывание Target:

На этой странице
Язык:

WKInterfaceTable

Наследование


Соответствует


Оператор импорта


Swift

import WatchKit

Objective C

@import WatchKit;

Доступность


Доступный в iOS 8.2 и позже.

A WKInterfaceTable объект создает и управляет содержанием табличного интерфейса отдельного столбца. Вы используете объект таблицы, чтобы определить номер и тип строк и сконфигурировать объекты данных для тех строк.

Конфигурирование объекта таблицы и заполнение его с данными требуют нескольких шагов:

  1. Определите один или несколько типов контроллера строки в своей раскадровке.

  2. Определите пользовательский класс данных для управления содержанием каждого типа строки.

  3. Скажите объекту таблицы сколько строк (и какой тип) отображать во время выполнения.

  4. Используйте экземпляры своего пользовательского класса данных для конфигурирования содержания каждой строки.

Не разделяйте на подклассы или создавайте экземпляры этого класса сами. Вместо этого определите выходы в своем классе контроллера интерфейса и подключите их к соответствующим объектам в Вашем файле раскадровки. Например, для обращения к объекту таблицы в интерфейсе определите свойство с помощью следующего синтаксиса в классе контроллера интерфейса:

Swift

  • @IBOutlet weak var myTable: WKInterfaceTable!

Objective C

  • @property (weak, nonatomic) IBOutlet WKInterfaceTable* myTable;

Во время инициализации Вашего контроллера интерфейса WatchKit создает новый экземпляр этого класса и присваивает его Вашему выходу. В той точке можно использовать объект в выходе для внесения изменений в таблицу.

Определение строк таблицы

После добавления объекта таблицы к Вашей раскадровке сконфигурируйте контроллер строки, идущий с таблицей. Контроллер строки определяет появление определенного типа строки. Таблица идет с одним типом строки первоначально, и можно добавить более позже. Каждый контроллер строки в Вашей таблице требует, чтобы некоторая минимальная конфигурация была применима во время выполнения.

  • Каждый контроллер строки должен иметь имя, которое Вы определяете использование свойства Identifier в инспекторе Атрибутов. Вы используете это имя для создания строк того типа позже.

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

Для конфигурирования содержания контроллера строки перетащите элементы из библиотеки и отбросьте их на группу строки. Для большинства строк Вы захотите использовать объект группы в качестве объекта верхнего уровня. Можно также вложить объекты группы создать вертикальные и горизонтальные расположения относительно интерфейсных объектов. Той группе добавьте, что объекты должны были вывести на экран содержание строки. Рисунок 1 показывает, как сконфигурированная строка появляется в XCode.

Рисунок 1Defining строка в XCode image: ../Art/row_config_2x.png

Каждому контроллеру строки нужен класс для управления содержанием строки во время выполнения. Класс действует как прокси для строки в Вашем коде и хранит выходы, необходимо сконфигурировать содержание строки. Перечисление 1 показывает определение пользовательского MyRowController класс, который мог использоваться для контроллера строки на рисунке 1.

Перечисление 1Defining класс контроллера строки

Swift

  • class MyRowController: NSObject {
  • @IBOutlet weak var todoItem: WKInterfaceLabel!
  • @IBOutlet weak var actionButton: WKInterfaceButton!
  • }

Objective C

  • @interface MyRowController : NSObject
  • @property (weak, nonatomic) IBOutlet WKInterfaceLabel* todoItem;
  • @property (weak, nonatomic) IBOutlet WKInterfaceButton* actionButton;
  • @end

Определение номера строк во время выполнения

Для заполнения табличного объекта интерфейса данными используйте setRowTypes: или setNumberOfRows:withRowType: метод. Эти методы указывают тип (и число) строк для добавления к таблице. Если все строки имеют тот же тип, используйте setNumberOfRows:withRowType: метод. При использовании больше чем одного контроллера строки в таблице используйте setRowTypes: метод. Строка типа строки соответствует имени, Вы ввели в свойство Identifier для того контроллера строки в Вашей раскадровке.

Когда Вы добавляете строки к таблице, WatchKit создает строки на Часах Apple и инстанцирует классов, соответствующих тем строкам в Вашем расширении WatchKit. Недавно инстанцированные классы сохранены внутренне объектом таблицы и сделаны доступный для Вас через rowControllerAtIndex: метод. Используйте тот метод для получения каждого контроллера строки, возражают и конфигурируют содержание строки.

Перечисление 2 показывает пример того, как конфигурируют объект таблицы от Вашего контроллера интерфейса. todoItems свойство, на которое ссылается метод, является пользовательским свойством, содержащим WKInterfaceTable сконфигурированный объект. После получения данных для строк, вызовы метода setNumberOfRows:withRowType: метод для создания строк. Это тогда выполняет итерации по недавно создаваемым объектам контроллера строки, конфигурирование каждой метки с текстом для к - делает элемент.

Перечисление 2Configuring строки таблицы
  • - (void)loadTodoItems {
  • // Fetch the to-do items
  • NSArray* items = [self fetchTodoList];
  • // Configure the table object (self.todoItems) and get the row controllers.
  • [self.todoItems setNumberOfRows:items.count withRowType:@"default"];
  • NSInteger rowCount = self.todoItems.numberOfRows;
  • // Iterate over the rows and set the label for each one.
  • for (NSInteger i = 0; i < rowCount; i++) {
  • // Get the to-do item data.
  • NSString* itemText = items[i];
  • // Assign the text to the row's label.
  • MyRowController* row = [self.todoItems rowControllerAtIndex:i];
  • [row.todoItem setText:itemText];
  • }
  • }

Когда Вы захотите обновить содержание таблицы, вызвать setRowTypes: или setNumberOfRows:withRowType: снова с новой строкой вводят информацию. Вызов этих методов снова вынуждает таблицу отбросить старые строки и создать новые. Для вставки новых строк, не удаляя старые используйте insertRowsAtIndexes:withRowType: метод.

Ответ на касания в строках таблицы

Для ответа на касания в строке таблицы реализуйте контроллер интерфейса table:didSelectRowAtIndex: метод. Используйте тот метод, чтобы представить различный контроллер интерфейса или выполнить любые другие соответствующие задачи.

Соедините интерфейсом с параметрами конфигурации разработчика

XCode позволяет Вам сконфигурировать информацию о своем табличном объекте интерфейса в Вашем файле раскадровки. Таблица 1 перечисляет атрибуты, которые можно сконфигурировать в раскадровке и их значении.

Атрибуты таблицы Table 1WatchKit

Атрибут

Описание

Строки

Число контроллеров строки поддерживается таблицей. Измените значение, чтобы добавить или удалить новые объекты контроллера строки к файлу раскадровки.

Фон

Фоновое изображение для отображения позади элементов таблицы. Не устанавливайте изображение, если Вы хотите, чтобы цвет фона или изображение базового контроллера интерфейса были видимы.

Цвет

Цвет фона для таблицы. Выберите цвет, чтобы очиститься, если Вы хотите, чтобы цвет фона или изображение базового контроллера интерфейса были видимы.

Для каждого контроллера строки в Вашей таблице Таблица 2 перечисляет атрибуты, которые можно сконфигурировать и их значение.

Табличные 2Row атрибуты контроллера

Атрибут

Описание

Идентификатор

Имя раньше идентифицировало тип контроллера строки для setRowTypes: или setNumberOfRows:withRowType: метод.

Можно выбрать

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

  • Создает контроллеры строки для использования в заполнении таблицы с данными.

    Объявление

    Swift

    func setRowTypes(_ rowTypes: [AnyObject])

    Objective C

    - (void)setRowTypes:(NSArray *)rowTypes

    Параметры

    rowTypes

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

    Обсуждение

    Используйте этот метод, когда Вы захотите вывести на экран больше чем один тип строки в Вашей таблице. Этот метод удаляет любые существующие строки из таблицы и конфигурирует новый набор строк на основе информации в rowTypes параметр. Для каждой строки метод также создает экземпляр класса той строки и помещает полученный объект во внутренний массив, который Вы получаете доступ к использованию rowControllerAtIndex: метод. Это - Ваша ответственность сконфигурировать каждый новый контроллер строки с данными, которые Вы хотите вывести на экран.

    Порядок строк в rowTypes параметр решает, что порядок контроллера строки возражает получению использования rowControllerAtIndex: метод, с первым типом строки, используемым для создания контроллера строки в индексе 0, второй тип строки раньше создавал контроллер строки в индексе 1 и т.д.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.

  • Создает конкретное количество контроллеров строки (того же типа) для использования в заполнении таблицы с данными.

    Объявление

    Swift

    func setNumberOfRows(_ numberOfRows: Int, withRowType rowType: String)

    Objective C

    - (void)setNumberOfRows:(NSInteger)numberOfRows withRowType:(NSString *)rowType

    Параметры

    numberOfRows

    Общее количество строк для отображения в таблице.

    rowType

    Имя контроллера строки определяется в Вашем файле раскадровки. Эта строка соответствует значению в атрибуте Идентификатора определения контроллера строки в Вашем файле раскадровки.

    Обсуждение

    Используйте этот метод, когда Вы хотите заполнить таблицу со строками, которые являются всем тем же типом. Этот метод удаляет любые существующие строки из таблицы и конфигурирует новый набор строк на основе информации в numberOfRows и rowType параметры. Для каждой строки метод также создает экземпляр класса той строки и помещает полученный объект во внутренний массив, который Вы получаете доступ к использованию rowControllerAtIndex: метод. Это - Ваша ответственность сконфигурировать каждый новый контроллер строки с данными, которые Вы хотите вывести на экран.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.

  • numberOfRows Свойство

    Число контроллеров строки, доступных для Вас для получения. (только для чтения)

    Объявление

    Swift

    var numberOfRows: Int { get }

    Objective C

    @property(nonatomic, readonly) NSInteger numberOfRows

    Обсуждение

    Значение этого свойства 0 пока Вы не вызываете setRowTypes: или setNumberOfRows:withRowType: метод. После вызова одного из тех методов это свойство содержит число создававшихся контроллеров строки.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.

  • Возвращает контроллер строки для строки в указанном индексе в таблице.

    Объявление

    Swift

    func rowControllerAtIndex(_ index: Int) -> AnyObject?

    Objective C

    - (id)rowControllerAtIndex:(NSInteger)index

    Параметры

    index

    Основанный на нуле индекс строки. Этот параметр должен быть между нулем и общим количеством строк, указанных в numberOfRows свойство.

    Возвращаемое значение

    Объект контроллера строки, или nil если еще нет никаких контроллеров строки или index выходит за пределы.

    Обсуждение

    Вызовите setRowTypes: или setNumberOfRows:withRowType: метод перед использованием этого метода для получения любых контроллеров строки. После вызова одного из тех методов таблица создает контроллеры строки для каждого типа строки и хранит их внутренне в массиве. Используйте этот метод для получения тех контроллеров строки.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.

  • Вставляет строки в таблицу в указанных индексах.

    Объявление

    Swift

    func insertRowsAtIndexes(_ rows: NSIndexSet, withRowType rowType: String)

    Objective C

    - (void)insertRowsAtIndexes:(NSIndexSet *)rows withRowType:(NSString *)rowType

    Параметры

    rows

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

    rowType

    Тип контроллеров строки для вставки. Эта строка соответствует значению в атрибуте Идентификатора определения контроллера строки в Вашем файле раскадровки.

    Обсуждение

    Этот метод вставляет новые контроллеры строки в существующий массив контроллеров строки с помощью семантики, определенной insertObjects:atIndexes: метод NSMutableArray.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.

  • Удаляет указанные строки из таблицы.

    Объявление

    Swift

    func removeRowsAtIndexes(_ rows: NSIndexSet)

    Objective C

    - (void)removeRowsAtIndexes:(NSIndexSet *)rows

    Параметры

    rows

    Индексный набор, соответствующий строкам, Вы хотите удалить. Если какой-либо из индексов недопустим, этот метод повышает исключение.

    Обсуждение

    Этот метод удаляет контроллеры строки из таблицы с помощью той же семантики, определенной removeObjectsAtIndexes: метод NSMutableArray.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.

  • Прокручивает строку в указанном индексе в представление.

    Объявление

    Swift

    func scrollToRowAtIndex(_ index: Int)

    Objective C

    - (void)scrollToRowAtIndex:(NSInteger)index

    Параметры

    index

    Индекс строки, которая будет выведена на экран. Указание индекса меньше, чем 0 прокрутки к верхней части списка. Указание индекса, больше, чем общее количество контроллеров строки, прокручивает к нижней части списка.

    Оператор импорта

    Objective C

    @import WatchKit;

    Swift

    import WatchKit

    Доступность

    Доступный в iOS 8.2 и позже.