ios - 自定义 UITableViewCell 内的 UIView 宽度/高度错误

标签 ios swift uitableview uiview constraints

我遇到了以下问题。我有一个自定义类 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/

相关文章:

ios - Xcode 中的弱链接类

ios - 如何仅在特定度数范围内为 UIView 的旋转设置动画?

ios - 嵌套的 JSON 数据将导致使用 NS 字典崩溃(在 Swift 中)

ios - Swift 可重用的 UITextFieldDelegate

ios - 在调用 reloadData 之前,Autolayout 会错误地调整 UITableViewCells 的大小

ios - 当 TableView 有 AN XIB 时更改其大小

iphone - 从另一个选项卡重新加载 UITableView

ios - 如何更改列表中的 ListStyle

ios - NSString 有一些属性值 用 & 符号如何获取该属性值

ios - 删除后重用的UITableViewCell格式