我试图从我的前任的一个旧的目标C代码中弄清楚,我对此问题感到非常难过。
我们有一个DashboardView
类和一个更新前者的DashboardViewController
类。 DashboardView
班级有UITableView *m_data_tbl
,可显示相关数据。
-(void)connectionDidFinishLoading
的{{1}}上,它会调用DashboardViewController
,其中[m_dashboard_view setNeedsLayout]
是m_dashboard_view
的成员变量。
DashboardViewController
前两个函数填充数据和标题滚动。
问题是在第一次执行时,只显示了部分数据。即,最后两列(滚动时最右边的列)根本不显示。滚动显示最后两列是不可能的。 当用户从人像旋转到横向时,会显示最后两列。
毋庸置疑,以下是setNeedsLayout
的{{1}}的实施:
DashboardView
- (void) setNeedsLayout {
[self populateHeaderScrollView];
[self populateData];
[m_data_tbl reloadData];
}
实现为:
didRotateFromInterfaceOrientation
在纵向中,帧大小与最初初始化的帧大小相同,并且加载的数据在执行期间不会改变;只是显示最后两列是否不同。
没有做太多iPhone开发这个问题让我非常难过。