Swift:初始化自定义UITableViewCell时获取UITableView框架

时间:2015-01-26 02:26:01

标签: ios swift

我有一个带有名为blueView的子视图的自定义TableViewCell。我想将blueView的宽度设置为TableView的宽度。如何确定TableView的框架?

class TableCell: UITableViewCell {

    let blueView = UIView()

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)

        blueView.frame = CGRectMake(0, 0, [width of tableView], 10)
        blueView.backgroundColor = UIColor.blueColor()
        contentView.addSubview(blueView)
    }

}

1 个答案:

答案 0 :(得分:2)

你做不到。此时,单元格根本没有框架。

您有两种选择。

  1. 切换到自动布局
  2. 覆盖layoutSubviews()

    e.g。

    override func layoutSubviews() {
        super.layoutSubviews()
    
        let width = CGRectGetWidth(frame)
    
        let someFrame = CGRect(x: 0, y: 0, width: width, height: 10)
        someView.frame = someFrame
    }