2017-01-10 2 views
0

У меня есть словарь - dictTime: [Int:[Int]], и я хотел бы показать его в tableView в ячейке.Показать данные из массива в метки массива в таблицеview

Чтобы показать ключ в каждой ячейке - не проблема, но я хотел бы показать каждый элемент значения словаря в «собственном» UILabel, поэтому я создал [UILabel] и понял, что количество UILabel в массиве должно быть равно count элементов в значении словаря, но как это сделать в func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell для отображения для каждой строки (строка - это ключ- [значение])?

+0

использование 'numberOfRows (надрез раздел: Int)' и вернуть свой счет. –

+0

Вы можете показать свой словарь и нужный результат? – Niharika

+0

. Кого вы просто не замените 'cell.textLabel? .text = indexPath.row' на' cell.textLabel? .text = dictTime [indexPath.row] 'в' cellForRowAt'? – Toldy

ответ

0

В func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell вызовите другую функцию и передайте значение словаря этой функции, например [1,2,3] также передайте эту функцию tbaleviewcell. Теперь в этой функции запустите цикл в вашем словаре array [1,2,3] и один за другим UILabel в ваш tableviewcell программно.

0

Я не уверен, что понимаю проблему. Если вы хотите иметь столько строк, сколько записей словаря, используйте следующее:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return dictTime.count 
} 

Если вы хотите иметь столько ярлыков в своей камере, в виде записей для каждого ключа в словаре, вы должны реализовать сложный решение.

Я предлагаю создать «суперячеечную ячейку», которая имеет максимальное количество меток, помещает их в положение стачки и скрывает их в соответствии с количеством записей.

1

Предполагая, что ваш словарь подобен [Int1: [Int2]], что означает:

  • dictTime.allKeys даст вам множество всех INT1
  • dictTime [Int1] даст вам соответствующую кнопку [ Int2]

Пример:

вар dictTime = [1: [1,2], 2: [2,3], 3: [3,4]]

Для показывая их в Tableview:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return dictTime.count 
    } 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) 
     let keys = Array (dictTime.keys) 
     cell.textLabel?.text = String (keys[indexPath.row]) 
     cell.detailTextLabel?.text = String (dictTime[indexPath.row]) 

     return cell 
    } 
Смежные вопросы