Очень просто создать простой TableView с одним типом строки. Вы просто установитьНесколько RowTypes в TableView - watchKit
tableView.setNumberOfRows(yourArray.count, withRowType: "yourowtype")
, а затем добавить цикл, чтобы заполнить ваш uilabel
или что вы имеете с данными из массива.
Когда дело доходит до нескольких типов строк, это не так ясно. Я знаю, что вы должны установить
tableView.setRowTypes(yourRowTypesArray)
, но я не понимаю остальных.
В прошивке у вас есть очень четкое и простая indexPath.row
решения в cellForRowAtIndexPath
, где вы можете сказать - Хорошо, я хочу этот массив, чтобы заполнить эти indexPaths, другой массив должен заполнить эти e.t.c. с простой IF условной.
В WatchKit, однако, нет такой вещи, как indexPath.row
, и мне непонятно, как вы можете назначить определенные номера строк для определенного массива? И почему вы должны удалить setNumberOfRows
(как я видел в примерах по всей сети) в решении с несколькими рядами?
Я просмотрел сеть в отношении проблемы, и я не смог найти достойное работоспособное решение. Просто трюки и обходные пути.
спасибо.
UPDATE: Добавление кодов
Мои массивы
var questionsList = [["[What is the color of?]"],["Which city is the capital of Great Britain", "additional info"],["Some question"]]
var answersList1 = [["Blue"],["London"],["some answer 1"]]
var answersList2 = [["Grey"],["Liverpool"],["some answer 2"]]
loadTable функция
private func loadTable(){
tableView.setRowTypes(rowTypes)
for i in 0 ..< questionsList[0].count {
let rowController = tableView.rowControllerAtIndex(i) as! TableViewRowController
rowController.lblQuestion.setText(questionsList[0][i])
}
let rowController1 = tableView.rowControllerAtIndex(answersList1[0].count) as! AnswerRowController1
rowController1.button1.setTitle(answersList1[0][0])
let rowController2 = tableView.rowControllerAtIndex(answersList2[0].count+1) as! AnswerRowController2
rowController2.button2.setTitle(answersList2[0][0])
}
мне удалось заставить его работать. Но в статической версии. Другая проблема - у меня есть три массива в виде трех отдельных источников данных для разных типов строк. И эти массивы обновляются динамически. Неясно, как можно различать эти типы строк, поскольку нет разделов или indexPath.rows ... –
Добавлены коды. Моя цель состоит в том, чтобы иметь возможность 1) Альтернативно между вопросамиВыберите ячейки и ответыList1, ячейки answerList2 и загрузите соответствующий класс с идентификатором 2) Подайте данные из массивов таким образом, чтобы они были похожи на «ячейка вопроса/ячейка вопроса» \ answer 1 cell \ answer 1 cell "then again" question 2 cell \ question 2 cell \ answer 1 cell \ answer 1 cell "и т. д. в зависимости от размера массива –
@DavidRobertson, см. мои изменения – Sandeep