Я разработал свое приложение (поддерживает только альбомную ориентацию) в Xcode 4.0 и успешно обновился до каждой новой IOS, но с ios 7, поскольку мы знаем, что в строке состояния появилось новое изменение, что полоса пропускания в верхней части экрана, как показано на рисунке ниже
Но я решил это, изменив значение параметра viewcontrollerbasedstatusappearance как NO в plist, а также значение координаты x координаты окна до 20 пикселей (почему координата x означает, что мое приложение принудительно запускается в альбомной ориентации), оно работает в альбомной ориентации. И результат ниже показано на рисунке ниже, а код здесь
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
self.window = [[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
if (DEVICE_IS_IPHONE || DEVICE_IS_IPHONE5)
{
[UIApplication sharedApplication].statusBarHidden=YES;
}
else if(DEVICE_IS_IPAD)
{
[UIApplication sharedApplication].statusBarHidden=NO;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.clipsToBounds=YES;
self.window.frame=CGRectMake(self.window.frame.origin.x+20, self.window.frame.origin.y, self.window.frame.size.width-20, self.window.frame.size.height);
}
}
mLoginController = [[LoginViewController alloc]init];
mNavigationController = [[UINavigationController alloc ] initWithRootViewController:mLoginController];
self.window.rootViewController = mNavigationController;
[self.window addSubview:[mNavigationController view]];
[self.window makeKeyAndVisible];
[mLoginController release];
return YES;
}
И в loginviewcontroller с представлением, как показано ниже, я использую метод loadview, чтобы переопределить представление контроллеров, как показано ниже, для вашей информации я изменил это, чтобы использовать непосредственно viewdidload, хотя возникает та же проблема.
-(void)loadView{
CGSize theSize = CGSizeMake(1, 1);
CGRect theFrameRect = [UtilityMethods getAbsoluteFrameForSize:theSize];//i will get the exact
screen size based on device
UIView *theLoginView = [[UIView alloc]initWithFrame:CGRectMake(0, 40, theFrameRect.size.width,
theFrameRect.size.height)];
self.view = theLoginView;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
self.view.backgroundColor = [UIColor blackColor];
}
Но если я снова поверну в альбомную левую сторону, строка состояния появится в верхней части экрана, а рамка строки состояния окажется внизу, как показано на рисунке ниже. Вы можете наблюдать черный вид внизу на рисунке ниже, на что я надеюсь. рамка окна строки состояния.
Поэтому, пожалуйста, дайте мне знать, как справиться с этим, чтобы как можно скорее поддерживать iOS 6 и 7. Заранее спасибо.