Я работаю со старым проектом XCode, которому примерно 7/8 лет, и я перенес его в Objective-C 2.0 и для поддержки ARC.Проект не поддерживал Auto-Layout (это было как раз перед его выпуском) до того, как я над ним работал.Мне удалось устранить многие ошибки / проблемы, которые у меня были с запуском в более современной среде разработки Xcode (10.2.1).В целях тестирования я внедрил этот код в AppDelegate
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)];
[self.window setBackgroundColor:[UIColor redColor]];
self.window.rootViewController = [UIViewController new];
[self.window makeKeyAndVisible];
return YES;
}
, что по какой-то причине дает мне следующее:
Это результаткогда я работаю на iPhone X, iPhone XR или iPhone XS Max, похоже, что верхние и нижние поля (безопасные области) экрана не видны.Когда я отлаживаю иерархию представления, к которой они не обращаются, это просто показывает красное пространство?Когда я добавляю этот код в новый проект, он работает нормально и заполняет все пространство.Мне интересно, что из-за того, что это старый проект, может быть параметр сборки, который ограничивает расширение UIWindow
для поддержки новых устройств?
Также в качестве примечания я убедился, чтоUIWindow
Объект не используется в другом месте.