2015-11-19 1 views
0

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

это мой код.

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) 
    let object = lineItemsObject[indexPath.row] 
    //cell.textLabel?.text = object["quantity"] 

    print(object["description"]!) 

    if let descriptionLabel = cell.viewWithTag(500) as? UILabel { 
     descriptionLabel.text = object["description"] 
    } 
    else 
    { 
     print("fail") 
    } 

    return cell 
} 

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

здесь я приложил изображение моих деталей метки в атрибуте инспектора enter image description here

Пожалуйста, помогите мне исправить эту проблему.

+1

Ваш код выглядит отлично. Я проверил его с тестовым проектом, и он отлично работает. Попробуйте следующее: Удалить ячейку, которая поставляется со столом. Перетащите новую ячейку из обозревателя объектов, добавьте метку, установите ее тег, а затем идентификатор ячейки и попробуйте. – TheAppMentor

ответ

1

Ваша ячейка не знает о вашей этикетке внутри (одна с тегом 500). Вы не предоставляете пользовательскую ячейку из-за этой строки:

let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) 

Это предопределенная ячейка. По документации вы можете иметь предопределенные ячейки или пользовательские (полученные путем подклассификации UITableViewCell):

«При создании ячеек вы можете самостоятельно их настроить или использовать один из нескольких предопределенных стилей. Простой вариант сокетов - это самый простой вариант. предопределенные стили, ячейка предоставляет метки и изображения, чьи позиции и стиль фиксированы. ... Чтобы установить текст и изображения ячейки, используйте свойства textLabel, detailTextLabel и imageView. "

  1. Если вы хотите пойти предопределенная: Если вы хотите просто поместить текст на использование клеток (я вижу это один комментируется первое место).

    cell.textLabel? .text = объект [ "Количество"]

  2. Перейти на заказ

Продлить UITableViewCell на отдельном быстром файле. Сделайте свои привязки здесь и работайте со своей раскадрой параллельно. Назначьте свой класс в свою ячейку. Кроме того, изменение dequeue:

let cell: MyCustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) as! MyCustomTableViewCell 
+0

Я изменил указанную вами линию и удалил кодовую строку для класса UITableViewCell для представления таблицы. теперь он отлично работает –

+0

Я рад, что он работает! –

2

Как @TheAppMentor сказал, что код выглядит хорошо. Убедитесь, что вы ввели правильный идентификатор ячейки. Затем убедитесь, что вы подключили контроллер своего вида к классу (это моя общая ошибка). Также убедитесь, что что-то еще в этой ячейке не имеет те же теги. Вы также можете распечатать все подпункты, чтобы проверить, что внутри.

+0

Я проверил все, что вы упомянули. но не работает. а также я распечатал подзаголовки. существует три UITableViewCellContentViews. –

+0

Здесь я зарегистрировал класс UITableViewCell для таблицы. я удалил его, и теперь он работает нормально –