UIView里面的自定义UITableViewCell错误的宽度/高度

时间:2015-09-23 09:07:56

标签: ios swift uitableview uiview constraints

我遇到了以下问题。我有一个自定义类UITableViewCell,里面有一些UIViews,它们充当了chartviews的容器。 问题是如果我执行以下操作:

self.upperLeftChart = XYPieChart(frame: CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height))
self.upperLeftContainer.addSubview(self.upperLeftChart)

Chartview与整个UITableViewCell一样大,而不是我的容器大小。 如果我打印容器的大小

NSLog("\(self.upperLeftContainer.frame.width) / \(self.upperLeftContainer.frame.height)")

打印:320.0 / 568.0这是错误的。我的容器大约是整个细胞的四分之一。

我想这与我的Autolayout + Constraints有关。如果我将大小设置为120x120px硬编码,它可以很好地工作。

使用自动布局和约束来设置UIView的实际宽度和高度的任何技巧?

1 个答案:

答案 0 :(得分:1)

您需要做的是覆盖

override func layoutSubviews() {
    super.layoutSubviews()
    self.upperLeftCart.frame = CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height)
}

这样每次单元格调整大小时它都会改变视图的框架