在Orientation iOS6上调整自定义UITableViewCells(SubViews)的大小

时间:2013-07-26 16:17:30

标签: ios6 uitableview autolayout autoresizingmask uideviceorientation

  #我有一个带有自定义UITableViewCells的UITableView。由于我实施了ios6定向方法,因此我的观点在方向上自动旋转。
  #我没有使用xib文件并以编程方式绘制所有内容(imageView,label)。    当我旋转我的设备时,tableView和Cells被旋转,但是单元子视图在大小和位置方面不合适。

#那么如何调整TableView上绘制的当前单元格的大小。由于单元格是异步绘制而不是一次全部绘制,如何应用大小调整?

#我需要应用AutoResizingMasks还是NSLayoutConstraint?我的TabBar和NavigationBar已正确调整大小,但单元格没有。

*** Plz注意:我没有添加任何代码块,bcoz我只是想了解如何继续已经绘制的单元格以及在objectForRowAtIndexPath之后动态绘制的单元格。

1 个答案:

答案 0 :(得分:0)

我找到了答案。至于ios6中的方向,有很多links用于实现新方法。
最初我的观点不支持轮换,直到我发现我的tabBarController是应用程序的RootViewController所以我在我的子类TabBarController类中添加了(BOOL)shouldAutorotate {return YES; }

并在我的info.plist中为受支持的接口方向添加了键值对,除非您通过左- (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; }

指定当前UIViewController中的异常,否则此值将是应用程序的全局值


为了在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中的可见单元格,并像以前一样重复使用单元格。