1

我有几个实例的代码:

    if (!UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))
    {
        backgroundImage = [UIImage imageNamed:@"Background-Default-Portrait.png"];
    }
    else
    {
        backgroundImage = [UIImage imageNamed:@"Background-Default-Landscape.png"];
    }

注意!在 UIInterfaceOrientationIsPortrait() 前面。我发现,当应用程序第一次初始化时,它可以与 NOT 一起正常工作,并且无论应用程序是否第一次初始化,它都会拉取正确的背景,然后要么从那里旋转到使用错误的应用程序的横向和纵向。

目前我已经绕过了这个问题,以牺牲 DRY 和良好的工程为代价,通过拥有两份代码副本,一份适合刚刚加载的应用程序,另一份以视图刷新为代价。但我想知道有什么更好的方法。我可以使条件更加巴洛克,但我发现 UIInterfaceOrientationIsPortrait() 在我从初始化代码中调用它时返回一种值样式,而在设备在横向和纵向之间旋转时调用另一种值。

4

1 回答 1

0

您始终可以interfaceOrientation使用UIViewController.

 BOOL isPortrait = UIDeviceOrientationIsPortrait(self.interfaceOrientation);

希望这会给您带来一致的结果。

于 2013-09-30T16:17:41.390 回答