自定义单元格标签

时间:2014-11-03 02:47:42

标签: uitableview swift

我有一个我设计的自定义单元格。

enter image description here

我想将字符串传递给该自定义单元格。我创建了一个名为AlarmCell(UITableCell的子类)的可可触摸类,然后使用此代码调用它(在我的UIViewController类中):

let myCell = AlarmCell()

然后从AlarmCell中调用UILabel。

myCell.timeLabel?.text = newAlarm

newAlarm有字符串" 08:38 PM"

为什么myCell.timelabel会以nil的形式出现?我做错了什么?

编辑:

AlarmCell类:

class AlarmCell: UITableViewCell {
    @IBOutlet var timeLabel: UILabel!
}

警报(UIViewController类):

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let Cell  = tableView.dequeueReusableCellWithIdentifier("alarmCell", forIndexPath: indexPath) as UITableViewCell

我有:

cell.textLabel?.text = alarms[indexPath.row]

但是我需要将一个字符串传递给单元格内的自定义labl

3 个答案:

答案 0 :(得分:1)

帮自己一个忙,并创建一个与您的AlarmCell.swift类相关联的 nib 文件。自定义nib文件中的单元格后,在 viewDidLoad 函数中声明以下内容。

var nib = UINib(nibName: "AlarmCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "cell")

然后,在 cellForRowAtIndexPath 函数中提及它:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell:AlarmCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as AlarmCell
    cell.timeLabel.text = alarms[indexPath.row]
    return cell
}

答案 1 :(得分:0)

尝试将cell.textLabel?.text = alarms[indexPath.row]更改为

Cell.timeLabel?.text = NSString(format: "%@", alarms[indexPath.row])

您应该更改用于在let方法中声明Cell对象的func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell关键字,如下所示:

var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("alarmCell") as UITableViewCell alarmCell

答案 2 :(得分:0)

将单元格定义为

 var cell: AlarmCell = self.tableView.dequeueReusableCellWithIdentifier("alarmCell") as UITableViewCell AlarmCell

然后将setTextLabel(或自定义标签)文本设为

 cell.textLabel?.text = alarms[indexPath.row] as NSString

下面的评论,如果任何查询,这对我来说非常适合我