CustomUITableView中的标签文本没有变化

时间:2015-08-24 12:48:52

标签: ios swift uitableview uilabel

我使用下面的代码更改自定义uitableviewcell的标签文字:

   override func  tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    //NSArray *allsubviews = [[NSBundle mainBundle] loadNibNamed:@"LICustomUI" owner:nil options:nil];
    //LIMerchantTableViewCell *cell = [allsubviews objectAtIndex:LIApplicationLayout() == LIApplicationDirectionRightToLeft ? 8 : 9];

    let allSubViews = NSBundle.mainBundle().loadNibNamed("LICustomUI", owner: nil, options: nil)

    var cell:LIInsuranceNameTableViewCell = allSubViews[11] as! LIInsuranceNameTableViewCell

    cell.insuranceName.text = "Hello"

    println(cell.insuranceName)

    cell.insuranceName.backgroundColor = UIColor.redColor();

   // cell.backgroundColor = UIColor.redColor();

    return cell
}

println()日志的结果是:

<UILabel: 0x7ad71930; frame = (0 11; 320 21); text = 'Hello'; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7ad71a10>>

但在设备(模拟器)中文本不会更改!

2 个答案:

答案 0 :(得分:0)

如果您正在使用情节提要,请确保已将标签与insuranceName插座相关联(如果您还没有,只需按控制 - 从标签拖到您在其中找到的插座助理检查员)。

另外,请使用println(cell.insuranceName.text),而不只是println(cell.insuranceName)

答案 1 :(得分:0)

从下面重构您的代码。 1.在viewDidLoad中注册nib 2. cellForRowAtIndexPath中的deque

override func viewDidLoad() {
        super.viewDidLoad()

        self.tableView.registerNib( UINib(nibName:"nibName", bundle: nil), forCellReuseIdentifier: "identifier");
    }

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let myTableCell = tableView.dequeueReusableCellWithIdentifier("identifier", forIndexPath: indexPath) as! UITableViewCell;
        let subViews     = myTableCell.contentView.subviews as! Array
        if subViews.count > 0 {
            if let myLabel = subViews[0] as! UILabel {
                myLabel.text = "All good to go";
            }

        }
    }