2015-03-16 1 views
-1

В моем представлении контента UITableViewCell у меня есть метка, которую я хочу установить в программном обеспечении, но он остается неизменным независимо от того, какой кадр я ему даю. Мой cellForRowAtIndexPath -функции выглядит следующим образом:Манипулирование содержимым UITableviewCell не работает

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


    let selectedBackground = UIView(frame: CGRectMake(0, 0, width, 44)) 
    let selectedBackgroundImage = UIImageView(frame: CGRectMake(width - 20, 44/2 - 5, 10, 10)) 
    selectedBackgroundImage.image = UIImage(named: "checked") 
    selectedBackgroundImage.contentMode = .ScaleAspectFit 
    selectedBackground.addSubview(selectedBackgroundImage) 


    let separatorViewRegular:UIView = UIView(frame: CGRectMake(0, 43, 1024, 1)) 
    separatorViewRegular.layer.borderColor = grayColor.CGColor 
    separatorViewRegular.layer.borderWidth = 1 

    let cell:CompanyTableViewCell = self.companiesTV.dequeueReusableCellWithIdentifier("cell") as! CompanyTableViewCell 

     cell.label.textColor = UIColor(red: 100/255, green: 100/255, blue: 100/255, alpha: 1) 
     cell.label.frame = CGRectMake(0.7 * width, 0, 0.3 * width, 44) 
     cell.label.font = UIFont(name: "Avenir", size: 16) 
     cell.label.adjustsFontSizeToFitWidth = true 
     cell.label.numberOfLines = 1 
     cell.label.textAlignment = NSTextAlignment.Left 

     cell.backgroundColor = UIColor.clearColor() 

     cell.label.text = tickersToDisplay[indexPath.row] 

     cell.selectedBackgroundView = selectedBackground 
     cell.contentView.addSubview(separatorViewRegular) 

     return cell 

} 

Любая помощь и предложения о том, почему это не будет работать цениться.

+0

Мое предложение - не делать этого в cellForRowAtIndexPath. Во-первых, вы добавляете subviews в ячейки, которые уже есть, когда ячейка повторно используется. Вы должны добавить любые подпункты в методе init ячейки. – rdelmar

+0

@rdelmar Насколько я знаю, я не добавляю какие-либо подзаголовки, я просто пытаюсь настроить рамку содержимого, которое я уже добавил в моем файле-файле. – joseph

+0

@rdelmar Если вы думаете о добавлении 'separatorViewRegular', который не станет проблемой, так как он должен быть во всех ячейках, несмотря ни на что. – joseph

ответ

0

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

let cellId = "cell" 

var cell : CompanyTableViewCell = self.companiesTV.dequeueReusableCellWithIdentifier(cellId) as? CompanyTableViewCell 
if cell == nil { 
    cell = CompanyTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellId) // Your constructor here 
} 
+0

Вы не можете использовать «==» с «nil». – joseph

+0

Упс, попробуйте обновленный код (я изменил a! На a) – Dehli

+0

Скопировал ваш код напрямую, и я до сих пор не могу использовать «cell == nil». Кроме того, вы не можете использовать «как?» чтобы отбросить клеточный тип, он не позволит мне это сделать. – joseph

 Смежные вопросы

  • Нет связанных вопросов^_^