UIView里面自定义UITableViewCell错误的宽度/高度
Posted
技术标签:
【中文标题】UIView里面自定义UITableViewCell错误的宽度/高度【英文标题】:UIView inside custom UITableViewCell wrong width / height 【发布时间】:2015-09-23 09:07:56 【问题描述】:我遇到了以下问题。我有一个自定义类 UITableViewCell,里面有一些 UIView,它们充当图表视图的容器。 问题是如果我执行以下操作:
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 的真实宽度和高度?
【问题讨论】:
顺便说一句,upperLeftContainer 的大小是多少? 【参考方案1】:你需要做的是覆盖
override func layoutSubviews()
super.layoutSubviews()
self.upperLeftCart.frame = CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height)
这样每次单元格调整大小时它都会改变视图的框架
【讨论】:
不完全一样,你只需要初始化一次view,设置几次frame,layoutSubviews会被调用不止一次以上是关于UIView里面自定义UITableViewCell错误的宽度/高度的主要内容,如果未能解决你的问题,请参考以下文章
使用 iCarousel 时,我的自定义 UIView 显示但里面啥都没有?
在自定义 UIView 类中从 UIView 快速创建 IBoutlet [重复]
如何在 ViewController 中调用所有自定义 UIView 的方法?