如何在tableViewCellForRowAtIndex中更改customTableViewCell中的按钮框架

时间:2015-08-27 20:46:20

标签: ios swift uitableview uibutton frame

我想让我的按钮更宽一些,这是我正在努力工作的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("secondItemTableCell") as! SecondItemTableViewCell
    cell.docentBtn.setTitle(data[subjects[indexPath.section]]![indexPath.row], forState: UIControlState.Normal)
    println(cell.docentBtn.frame)
    cell.docentBtn.frame = CGRectMake(cell.docentBtn.frame.origin.x, cell.docentBtn.frame.origin.y, cell.docentBtn.frame.width + 20.0, cell.docentBtn.frame.height)
    cell.docentBtn.layer.cornerRadius = cell.docentBtn.frame.height / 2
    cell.docentBtn.clipsToBounds = true
    println(cell.docentBtn.frame)
    return cell
}

输出:

  

(8.0,5.0,49.0,34.0)
  (8.0,5.0,69.0,34.0)

但视觉上没有任何改变。有人可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:0)

通过向我的自定义单元格类添加按钮宽度约束来解决,然后在cellForRowAtIndex中更新其值。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("secondItemTableCell") as! SecondItemTableViewCell
    cell.docentBtn.setTitle(data[subjects[indexPath.section]]![indexPath.row], forState: UIControlState.Normal)
    cell.docentBtnWidth.constant = cell.docentBtn.frame.width + 25.0
    cell.docentBtn.layer.cornerRadius = cell.docentBtn.frame.height / 2
    cell.docentBtn.clipsToBounds = true
    return cell
}