我在重新加载表格单元格内的自定义UIView
(SBBarChart
)时出现问题。我不使用自动布局,因为它太难调整它可能存在或不存在的单元的所有组件。我手动计算每个矩形和那个工作。旋转后错误地重新加载
关于旋转,我试着在表格视图控制器中执行willRotateToInterfaceOrientation
方法,里面有[self.tableView reloadData]
。这将在旋转后再次生成单元格。精细。
在单元类的内部,我调用[self.barChart setNeedsDisplay]
以确保图表的子视图将被重新加载,这是可行的。
现在的问题。最初,纵向视图打开并正确加载。当我旋转到风景时,这也起作用。当我旋转回肖像时,条的长度计算正确,但仍然显示为横向。因此,新的矩形为酒吧有正确的措施,但酒吧显示太长,部分在屏幕之外。
正确显示(和居中)框架的相同度量的标签,所以它应该是条视图重新加载的问题。
我在做什么错?
谢谢你的答案,但我想要的是用条形图填充屏幕的宽度。所以图表的代码是'self.barChart.frame = CGRectMake(20,self.barChart.frame.origin.y,self.frame.size.width - 60,self.barChart.frame.size.height);' 。计算工作正常,但矩形仍然太长。我试过'[self.barChart setNeedsDisplayInRect:self.barChart.frame];'没有帮助。对于标签,我做'self.myLabel.frame = CGRectMake(self.barChart.frame.origin.x,self.barChart.frame.origin.y,self.barChart.frame.size.width,self.barChart.frame .size.height);'那是有效的。 – Antiohia 2013-04-26 06:30:17