Изменить заголовок кнопки на основе текста в табличном представлении - PullRequest
0 голосов
/ 13 ноября 2018

я пытаюсь изменить заголовок кнопки, основываясь на выделении текста в табличном представлении, но каким-то образом всегда выскакивает ошибка "недопустимая escape-последовательность в литерале". Может кто-нибудь помочь мне решить эту проблему? Спасибо !!

Ниже мой код:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.textLabel?.text = userList[indexPath.row]
    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    btnDrop.setTitle("\|userList[indexPath.row|", for: .normal)
    animate(toogle: false)
}

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

для вашего случая userList содержит строки, что означает, что нет необходимости выполнять интерполяцию строк. Вы можете использовать его напрямую:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    btnDrop.setTitle(userList[indexPath.row], for: .normal)
    animate(toogle: false)
}

Однако причина ошибки заключается в следующем: при выполнении интерполяции строк вы должны сделать это следующим образом:

"\(userList[indexPath.row)"

вместо:

"\|userList[indexPath.row|"

() вместо ||.

Для получения дополнительной информации, проверьте Язык программирования Swift: строки и символы - Секция интерполяции строк.

0 голосов
/ 13 ноября 2018

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

\(value)

Так замените это

btnDrop.setTitle("\|userList[indexPath.row|", for: .normal)

с этим

btnDrop.setTitle("\(userList[indexPath.row])", for: .normal)

Но в вашем случае вам не нужно его использовать, потому что ваш userList - это просто массив строковых значений, поэтому вы можете просто использовать это:

btnDrop.setTitle(userList[indexPath.row], for: .normal)
...