在方向iOS6上调整自定义UITableViewCells(子视图)的大小



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中可见的单元格会被重新绘制,单元格会像以前一样重复使用。

最新更新