在UITableView单元格中设置按钮边框时出现致命错误

时间:2015-08-18 15:10:42

标签: ios xcode swift uitableview

我在UITableViewCell中创建了一个按钮。单元格附有.swift类Symfony2。以下是代码的一部分:

SampleCell

我希望从另一个类添加此按钮的边框。这就是我的所作所为:

class SampleCell: UITableViewCell {

    @IBOutlet weak var button: UIButton!

    //...
    //other stuff
    //...

}

当我运行应用程序时,我收到此错误

  

致命错误:在解包可选值时意外发现nil

在第class SampleTableViewController: UITableViewController { let sampleCell : SampleCell = SampleCell() override func viewDidLoad() { super.viewDidLoad() } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var identifier : String = "Brightness" let identifier_1 : String = "Color" if index path.row == 0 { identifier = identifier_1 sampleCell.button.layer.borderColor = UIColor.blackColor().CGColor sampleCell.button.layer.borderWidth = 1.0 } //other stuff.. let cell = tableView.dequeueReusableCellWithIdentifier(identifier, forIndexPath: indexPath) return cell } }

我该如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:3)

问题

您没有加载任何单元格,只是初始化类。这意味着您没有加载单元格的视图,因此按钮为零。该按钮不是可选的,展开它会使您的应用程序崩溃。

解决方案

使用UITableViewDatasource cellForRowAtIndexPath:将您的单元格出列,如下所示:

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

    //Your config
    sampleCell.button.layer.borderColor = UIColor.blackColor().CGColor
    sampleCell.button.layer.borderWidth = 1.0

    return sampleCell
}