Я начинаю стремительное программирование и новичок в ios. Я пытаюсь сделать представление таблицы, но условие if (cell == nil), но ячейка никогда не имеет значения nil и не вступает в состояние, это мой код.ячейка tableview не нуль при инициализации в swift
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//cell content declaration
var rightlabel = UILabel(frame: CGRectMake(200, 10, 200, 21))
var mainTextLabel = UILabel(frame: CGRectMake(10, 10, 200, 21))
var imageView = UIImageView()
var cell : UITableViewCell!
cell = tableView.dequeueReusableCellWithIdentifier("detailsCell") as? UITableViewCell
//cell content declaration END
if(cell == nil)
{
cell = tableView.dequeueReusableCellWithIdentifier("detailsCell", forIndexPath: indexPath) as UITableViewCell
let test: AnyObject? = myData?.objectForKey("\(indexPath.row + 1)")
let hrvalue : AnyObject? = test?.objectForKey("name")
let subtitle : NSNumber? = test?.objectForKey("distance") as? NSNumber
let icon : String = test?.objectForKey("icon") as String
//CUSTOM LABEL START FROM HERE
mainTextLabel.text = hrvalue as? String
rightlabel.text = "\(subtitle as Float) k.m. away from here."
mainTextLabel.font = UIFont.systemFontOfSize(18.0)
rightlabel.font = UIFont.systemFontOfSize(14.0)
let image = UIImage(named: icon)
imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 120, y: 10, width: 30, height: 30)
mainTextLabel.tag = 4
rightlabel.tag = 50
imageView.tag = 100
cell.contentView.addSubview(mainTextLabel)
cell.contentView.addSubview(rightlabel)
cell.contentView.addSubview(imageView)
//CUSTOM LABEL END
}
if(cell != nil)
{
println("outside")
//FATCHING TAG & RETURN CELL
mainTextLabel = cell.viewWithTag(4) as UILabel
rightlabel = cell.viewWithTag(50) as UILabel
imageView = cell.viewWithTag(100) as UIImageView
}
return cell
// FATCHING TAG & RETURN CELL END
}
Вы используете ячейки прототипа в раскадровке или иным образом зарегистрировали класс/нить против идентификатора повторного использования? Если это так, 'dequeueReusableCellWithIdentifier' никогда не вернет нуль. Ваш код внутри 'if cell == nil' тоже не имеет смысла. - В традиционном подходе, когда класс ячейки или nib не зарегистрирован, вы не вызываете' dequeueReusableCellWithIdentifer: indexPath: 'в этом случае вам действительно нужно для выделения новой ячейки – Paulw11
да я использую прототип ячейки в storyBoard – Biren
Я меняю свой код и удаляю cell = tableView.dequeueReusableCellWithIdentifier ("detailsCell") как? UITableViewCell и добавил его в ячейку if: = nil, , и теперь я получаю значение nil, но он не входит в условие if – Biren