Подтвердить что ты не робот

IOS: ячейки UITableView с несколькими строками?

Какой лучший способ иметь ячейки UITableView с несколькими строками? Пусть говорят 5.. или 6?

Вместо textLabel и la detailTextLabel? Должен ли я создать собственный стиль? или пользовательский вид?

Любой учебник/пример хорошо принят.

спасибо

4b9b3361

Ответ 1

Для этого вы можете использовать существующие UILabel-представления в UITableViewCell. Секрет состоит в том, чтобы сделать следующее:

cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;

По умолчанию UILabel разрешает только 1 строку текста. Установка numberOfLines на 0 в основном устраняет любые ограничения на количество отображаемых строк. Это позволяет вам иметь несколько строк текста.

Параметр lineBreakMode to Word Wrap указывает на перенос слов на длинные строки текста на следующую строку в метке. Если вы этого не хотите, вы можете пропустить эту строку.

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

Для iOS 6.0 и более поздних версий используйте NSLineBreakByWordWrapping вместо UILineBreakModeWordWrap, который устарел.

Ответ 2

Для Swift 3.x:

func allowMultipleLines(tableViewCell: UITableViewCell) {
    tableViewCell.textLabel?.numberOfLines = 0
    tableViewCell.textLabel?.lineBreakMode = .byWordWrapping
}

Ответ 3

Существует метод для достижения этой цели только с помощью раскадровки. Сначала выберите ячейку и перейдите в раздел атрибутов на правой панели. Первым вариантом должен быть "Стиль". Измените это на обычное. Теперь, в вашей камере, вы должны увидеть текст с надписью "Название". Дважды щелкните по нему, а на правой панели вы сможете установить количество строк.

Ответ 4

Я нашел, что это сработало для меня на Xcode Version 8.0 (8A218a)

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)    UITableViewCell {
        let cell = UITableViewCell()
       //MARK: word wrapping in cell
        cell.textLabel?.text = self.choices[(indexPath as NSIndexPath).row]
        cell.textLabel?.numberOfLines=0 // line wrap
        cell.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping

        return cell
    }