我遇到了以下问题。我有一个自定义类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的实际宽度和高度的任何技巧?
答案 0 :(得分:1)
您需要做的是覆盖
override func layoutSubviews() {
super.layoutSubviews()
self.upperLeftCart.frame = CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height)
}
这样每次单元格调整大小时它都会改变视图的框架