0

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

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

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

***请注意:我没有添加任何代码块,因为我只是不明白如何处理已绘制的单元格以及在 objectForRowAtIndexPath 之后动态绘制的单元格。

4

1 回答 1

0

   我找到了答案。至于ios6中的定位,有很多实现新方法 的链接。
    最初我的视图不支持旋转,直到我发现我的 tabBarController 是应用程序的 RootViewController 所以我添加
(BOOL)shouldAutorotate {return YES; }
    了我的子类 TabBarController 类

   并且在我的 info.plist 中为支持的界面方向添加了键值对,除非您在当前 UIViewController 通过
- (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; }


  为了在 UITableView 中实现旋转,我调用了 reloadData(); 通过使用
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { [self.tableView reloadData]; }

    无需编写自定义 UITableViewCell 类,因为您可以在
– tableView:cellForRowAtIndexPath:方法中重绘单元格。
     因为我已经有一个自定义的 UITableViewCell 类,所以我layoutSubviews();通过获取[[UIApplication sharedApplication] statusBarOrientation]方法来绘制新的单元格。
   如果单元格中有任何自定义 UIView,则需要重绘矩形以支持横向模式。基本上我也支持 ios5,所以我没有通过 XIB 使用 AutoLayout。您还可以根据布局框架对每个子视图使用自动调整大小的掩码。

   重载数据();内存并不昂贵,因为您不会同时调用所有单元格@,并且仅重绘 UITableView 中的可见单元格,并且像以前一样重用单元格。

于 2013-07-30T08:03:10.143 回答