0

我在表格单元格内重新加载自定义UIView( ) 时遇到问题。SBBarChart我不使用自动布局,因为它很难调整单元格的所有组件(可能存在或不存在)。我每次都手动计算矩形并且有效。

关于旋转,我尝试在表格视图控制器中实现内部willRotateToInterfaceOrientation方法[self.tableView reloadData]。这会在旋转后再次生成单元格。美好的。

在单元格类内部,我调用[self.barChart setNeedsDisplay]以确保重新加载图表的子视图,这很有效。

现在的问题。最初,纵向视图打开并正确加载。当我旋转到横向时,它也可以。当我旋转回纵向时,条的长度计算正确,但仍显示为横向。因此,条形的新矩形具有正确的度量,但条形显示太长并且部分位于屏幕之外。

具有相同尺寸的框架标签正确显示(并居中),因此应该是条形视图重新加载的问题。

我究竟做错了什么?

4

2 回答 2

1

尝试检查[[UIApplication sharedApplication] statusBarOrientation]

重新加载您的表格视图时,然后进行相应调整。这将给出当前的旋转状态。

于 2013-04-25T15:54:12.037 回答
0

我刚刚解决了我的问题。我在我的代码中发现了三个主要错误。

1)我在dequeueReusableCellWithIdentifier从单元格中删除控件后使用。这导致缺少控件和奇怪的行为。现在我每次从笔尖生成一个新单元格。

2)我正在使用从单元格中删除的控件的值xy我只是把数值代替。

3)我使用frame来确定屏幕的宽度。但是,框架不会改变。为了解决这个问题,我使用了以下线程:如何获得与方向相关的屏幕高度和宽度?

现在,我什至不需要这条线[self.barChart setNeedsDisplay],我可以随心所欲地旋转设备,控件不再移动。:)

我仍然不确定是否必须调用reloadData来调整布局,但我还没有找到更好的解决方案。

所以,终于成功了!非常感谢您的帮助,我希望这篇文章对其他人有所帮助。:)

于 2013-04-26T08:31:20.957 回答