Как добавить числа в каждую строку таблицы, начиная с 1 - PullRequest
0 голосов
/ 12 октября 2019

Я создал TableView с ячейкой-прототипом с большим количеством содержимого, несколькими метками, 2 изображениями и цветным представлением, если выбрана строка.

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

Я добавил переменную Int 'memberID', которая начинается с единицы и увеличивается на единицу с каждой созданной ячейкой и записывает значение в метку в ячейке прототипа.

Это именно то, что я хочу, только с одной проблемой: каждый раз, когда я прокручиваю в таблице, ID увеличивается. Я знаю, что это из-за повторного использования ячеек, но я не мог найти способ решить эту проблему.

Вот как это выглядит (PartID):

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "tbcCourseParticipant", for: indexPath) as! participantCell
        let partic = participants[indexPath.row]
        cell.lblId?.text = String(particID)
        cell.lblName?.text = partic.name
        cell.lblFirstName?.text = partic.firstName
        cell.lblBirthDate?.text = partic.birthDate
        cell.lblPhoneNr?.text = partic.phoneNr
        cell.lblPrice?.text = String(partic.payed) + "€"
        particID += 1
        return(cell)
    }

1 Ответ

0 голосов
/ 12 октября 2019

Общее количество строк participants.count. Число этой строки равно indexPath.row+1 (я добавляю 1, потому что пользователь не будет ожидать отсчета с нуля, как это делал бы программист).

Поэтому я бы сказал:

cell.lblId?.text = String(indexPath.row+1)

Или, может быть:

cell.lblId?.text = String(indexPath.row+1) + " of " + String(participants.count)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...