Detect iPhone orientation before loading tableview

2019-07-21 15:18发布

So, I'm in a bit of a bind... According to this post, the orientation of the iPhone/iPad is portrait up to a point after which the "auto-rotate" function inside the controller tells iOS that the orientation has changed. My problem is that it appears as though the tableview cells are loading before I have a chance to detect a change in the orientation. My tableview depends on the orientation of the device, so I can't load it until the orientation is known. Is there something I don't know?

Thanks guys!

2条回答
姐就是有狂的资本
2楼-- · 2019-07-21 15:54

I believe you are providing support for both the LAndScape and Potrait mode for the application so you should detect the device orientation in the cellForRowAtIndexPath method and create the cell for the current orientation:

if ([UIDevice currentDevice].orientation!=UIDeviceOrientationLandscapeLeft && [UIDevice currentDevice].orientation!=UIDeviceOrientationLandscapeRight) {

 Identifier= @"aCell_portrait"

 }else Identifier= @"DocumentOptionIdentifier_Landscape";
查看更多
狗以群分
3楼-- · 2019-07-21 16:02

When the auto-rotate function is called, you could just run

[tableView reloadData]; 

to reload the table after rotation has occurred.

查看更多
登录 后发表回答