如何在Swift中以编程方式更改自定义UITableViewCell中按钮的背景颜色?

时间:2016-08-09 02:24:57

标签: ios swift uitableview uiview

我有一个自定义UITableViewCell,其中一个子视图是button(标题为" RSVP"):

enter image description here

它连接到以下代码:

class SelectedEventsTableViewCell: UITableViewCell {

    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var dateLabel: UILabel!
    @IBOutlet weak var descriptionLabel: UILabel!
    @IBOutlet weak var attendanceLabel: UILabel!
    @IBOutlet weak var attendanceButton: UIButton!
} 

我正在尝试通过将此代码添加到SelectedEventsTableViewCell类来更改按钮的背景颜色

override func awakeFromNib() {
    super.awakeFromNib()

    attendanceButton.backgroundColor = UIColor.greenColor()
}

但是,它不起作用。该按钮获得白色背景

enter image description here

有人知道为什么会这样吗?当按下按钮时,以编程方式设置按钮的背景颜色时,它也不起作用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

检查您将按钮背景颜色设置为白色的位置。

attendanceButton.backgroundColor = UIColor.whiteColor()

检查在TableView的数据源中使用SelectedEventsTableViewCell对象的位置或viewController中的委托方法。

离。

cell.attendanceButton.backgroundColor = UIColor.whiteColor()

答案 1 :(得分:0)

有几个可能的原因 你能让这个出口进入吗?如果没有,请从故事板中按CTRL-DRAG 2.你在awakeFromNib()之后改变了吗?也许你在cellForIndexPath(表视图数据源)中再次设置它 3.Cell被重用了但是醒了一次。这意味着您应该在重用后恢复其状态。 prepareForReuse()专为此而设计。