我有几个实例的代码:
if (!UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))
{
backgroundImage = [UIImage imageNamed:@"Background-Default-Portrait.png"];
}
else
{
backgroundImage = [UIImage imageNamed:@"Background-Default-Landscape.png"];
}
注意!在 UIInterfaceOrientationIsPortrait() 前面。我发现,当应用程序第一次初始化时,它可以与 NOT 一起正常工作,并且无论应用程序是否第一次初始化,它都会拉取正确的背景,然后要么从那里旋转到使用错误的应用程序的横向和纵向。
目前我已经绕过了这个问题,以牺牲 DRY 和良好的工程为代价,通过拥有两份代码副本,一份适合刚刚加载的应用程序,另一份以视图刷新为代价。但我想知道有什么更好的方法。我可以使条件更加巴洛克,但我发现 UIInterfaceOrientationIsPortrait() 在我从初始化代码中调用它时返回一种值样式,而在设备在横向和纵向之间旋转时调用另一种值。