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

我有一个自定义的TableViewCell,其子视图名为blueView。 我想将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. 切换到自动布局
  2. 覆盖layoutSubviews()

    例如

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