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

标签 ios swift

我有一个带有名为 blueView 的 subview 的自定义 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. 切换到自动布局
  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
    }
    

关于ios - Swift:初始化自定义 UITableViewCell 时获取 UITableView 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143984/

相关文章:

ios - 需要将 NSString 转换为 Nsdate

swift - 如何向枚举添加新案例?

objective-c - 关于 objective-C 和 cocoa/cocoa-touch 的实现的良好知识/信息来源是什么?

ios - OS X Cocoa 颜色组合框

swift - Glibc 的哈希函数

swift - `swift test` 产生 "symbol(s) not found for architecture x86_64"链接器错误

ios - 根据 bool 值切换 View Controller

ios - 如何知道我上传到 firebase 的文件是否已完成上传?

iphone - 从新版本的应用程序中删除购买的应用程序(iOS)

ios - 从没有 Controller 的 UITableView 触发 segue