Пользовательская ячейка в Xcode 6 + Swift не отображается

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

Я создал класс CustomCell.swift для настройки ярлыков, которые я хочу в своей пользовательской ячейке, создал его через раскадровку (первую ячейку прототипа в виде таблицы) и связал ее с идентификатором метода cellForRowAtIndexPath

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

    let cellIdentifier = "huisCell"

    var cell: CustomCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CustomCell

    if cell == nil {
        cell = CustomCell(style: UITableViewCellStyle.Value1, reuseIdentifier: cellIdentifier)
    }

    cell!.huisAdresLabel.text = "123"
    cell!.huisDetailLabel.text = "456"

    return cell
}

Мой код CustomCell.swift выглядит следующим образом:

class CustomCell: UITableViewCell {

    @IBOutlet var huisAdresLabel: UILabel
    @IBOutlet var huisDetailLabel: UILabel

}

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

Изображения с помощью DropBox, потому что мне нужно 10 репутации, чтобы правильно документировать мою проблему:)

https://www.dropbox.com/sh/5v9jb6cqp80knze/AAD5-yPR8-KoStQddkqKIbcUa

Я надеюсь, что кто-то может объяснить, что я делаю неправильно.

Edit:

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

Кроме того, при тестировании различных решений я столкнулся с проблемой, что две метки в CustomCell.swift равны нулю. Даже когда я создал пользовательский init и сделал как

self.huisAdresLabel = UILabel()

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

<UILabel: 0xb2aadc0; frame = (0 -21; 42 21); text = '123'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xb2aa3a0>>

Ответ 1

Я решил эту проблему, переопределив следующую функцию, установив высоту ячеек вручную:

override func tableView(tableView:UITableView!, heightForRowAtIndexPath indexPath:NSIndexPath)->CGFloat
{
    return 44
}

Ответ 2

Попробуйте использовать файл xib и добавьте свой собственный класс ячеек в "Table View Cell", которую вы создаете в своем xib файле.

(Убедитесь, что вы подключили его к розеткам в своем классе сотовой ячейки;)

Эта ссылка может помочь. http://www.weheartswift.com/swifting-around/

Ответ 3

У меня была та же проблема, но после отключения "Использовать автоматический макет" в "Файловом инспекторе" это сработало! и отображаются пользовательские ячейки.

Примечание. Я создал пользовательские ячейки в Builder, а не в коде. Использование Xcode beta 3

enter image description here

Ответ 4

Работа с ячейками пользовательских таблиц в Xcode 6 Beta-4 IB, я обнаружил, что все они отображаются поверх друг друга и моей нестандартной ячейки.

Я исправил свою проблему...

  • выбор пользовательской ячейки в IB
  • выбор Инспектора размера (Option-Command-5)
  • в разделе "Вид таблицы"
    • проверка флажка
    • сохранение предоставленной по умолчанию 44 Строка

Ответ 5

Быстрое обходное решение: отключить Использовать классы классов, но до сих пор не знаю, есть ли это ошибка или функция:-) требуется больше исследований или чтения человеком.