nbsp nbsp;#我有一个带有自定义UITableViewCells的UITableView。我的视图是自动旋转的方向,因为我已经实现了ios6的方向方法
nbsp;#我没有使用xib文件并以编程方式绘制所有内容(imageView,label)。当我旋转设备时,会旋转tableView和Cells,但单元格子视图的大小和位置不合适。
#因此,如何调整在TableView上绘制的当前单元格的大小。由于单元格是异步绘制的,而不是一次全部绘制,如何应用调整大小?
#我需要应用AutoResizingMasks还是NSLayoutConstraint?"我的选项卡栏"one_answers"导航栏"的大小调整正确,但单元格的大小没有调整。
***Plz注意:我没有添加任何代码块,因为我只是不知道如何处理已经绘制的单元格和在objectForRowAtIndexPath之后动态绘制的单元格。
nbsp;我找到了答案。至于ios6中的定向,有许多实现新方法的链接。
最初,我的视图不支持旋转,直到我发现我的tabBarController是应用程序的RootViewController,所以我添加了(BOOL)shouldAutorotate
{return YES;
}
nbsp;在我的子类TabBarController类中
nbsp;在我的info.plist中,为支持的接口方向添加了键值对,除非您通过- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
在当前UIViewController中指定异常,否则这些值将对应用程序是全局的
nbsp;为了在UITableView中实现旋转,我调用了reloadData();通过使用- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self.tableView reloadData];
}
nbsp;不需要编写自定义UITableViewCell类,因为您可以在– tableView:cellForRowAtIndexPath:
方法中重新绘制单元格
nbsp;由于我已经有了一个自定义的UITableViewCell类,我通过获取[[UIApplication sharedApplication] statusBarOrientation]
方法在layoutSubviews();
中绘制新的单元格
如果单元格中有任何自定义UIViews,则需要重新绘制矩形以支持横向模式。基本上我也支持ios5,所以我不会通过XIB使用AutoLayout。也可以根据布局框架对每个子视图使用自动重影遮罩。
nbsp;reloadData();内存并不昂贵,因为您不会同时调用所有单元格,而且只有UITableView中可见的单元格会被重新绘制,单元格会像以前一样重复使用。