我遇到了以下问题。我有一个自定义类 UITableViewCell,里面有一些 UIView,它们充当图 TableView 的容器。 问题是如果我执行以下操作:
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 的实际宽度和高度?
最佳答案
你需要做的是覆盖
override func layoutSubviews() {
super.layoutSubviews()
self.upperLeftCart.frame = CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height)
}
这样每次单元格调整大小时它都会改变 View 的框架
关于ios - 自定义 UITableViewCell 内的 UIView 宽度/高度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32735356/