#我有一个带有自定义UITableViewCells的UITableView。由于我实施了ios6定向方法,因此我的观点在方向上自动旋转。
#我没有使用xib文件并以编程方式绘制所有内容(imageView,label)。
当我旋转我的设备时,tableView和Cells被旋转,但是单元子视图在大小和位置方面不合适。
#那么如何调整TableView上绘制的当前单元格的大小。由于单元格是异步绘制而不是一次全部绘制,如何应用大小调整?
#我需要应用AutoResizingMasks还是NSLayoutConstraint?我的TabBar和NavigationBar已正确调整大小,但单元格没有。
*** Plz注意:我没有添加任何代码块,bcoz我只是想了解如何继续已经绘制的单元格以及在objectForRowAtIndexPath之后动态绘制的单元格。
答案 0 :(得分:0)
我找到了答案。至于ios6中的方向,有很多links用于实现新方法。
最初我的观点不支持轮换,直到我发现我的tabBarController是应用程序的RootViewController所以我在我的子类TabBarController类中添加了(BOOL)shouldAutorotate
{return YES;
}
并在我的info.plist中为受支持的接口方向添加了键值对,除非您通过左- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
为了在UITableView中实现旋转,我调用了reloadData();通过使用
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self.tableView reloadData];
}
没有必要编写自定义的UITableViewCell类,因为您可以用– tableView:cellForRowAtIndexPath:
方法重绘单元格。
由于我已经有了一个自定义的UITableViewCell类,我通过获取layoutSubviews();
方法在[[UIApplication sharedApplication] statusBarOrientation]
中绘制新单元格。
如果单元格内有任何自定义UIViews,则需要重新绘制矩形以支持横向模式。基本上我也支持ios5所以我没有通过XIB使用AutoLayout。您还可以根据布局框架为每个子视图使用自动调整遮罩。
reloadData();记忆并不昂贵,因为你不同时调用所有单元格,只重绘UITableView中的可见单元格,并像以前一样重复使用单元格。