Я пытаюсь реализовать новый viewWillTransitionToSize
метод, который был представлен в iOS 8 (все другие методы ротации устарели). Я хотел бы знать, что является эквивалентом didRotateFromInterfaceOrientation
сейчас, так как есть ряд задач по очистке, которые нам нужно выполнить, и я не вижу блок, который мы можем назначить для UIViewControllerTransitionCoordinator
вызова при переходе к новому Размер заканчивается. Спасибо.
ios
iphone
objective-c
ios8
странный
источник
источник
- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; // do whatever } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) { }]; [super viewWillTransitionToSize: size withTransitionCoordinator: coordinator]; }
[UIDevice currentDevice].orientation
. Вы также можете передать это вUIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)
илиUIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)
. Надеюсь это поможет!Свифт Версия ответа странным
источник
print
для моего журнала. Я думаю, потому что этот метод не вызывается. Можете ли вы придумать что-нибудь еще, что нужно было бы подключить, чтобы это работало?iOS 10.3 и Swift 3
источник
Принятый ответ в Swift 3 :
У меня работает нормально 👍
источник
let orient = newCollection.verticalSizeClass switch orient { case .compact: print("Lanscape") // Do something default: print("Portrait") // Do something else }
Так как вопрос был: что было эквивалентно
didRotateFromInterfaceOrientation
Я думал, что добавлю код ниже:
Я тестировал на iPhone в симуляторе, но мои операторы печати не запустятся, если я протестирую с помощью iPad, так как traitsCollection не изменится.
Это странно, потому что Apple рекомендует именно это :
источник
[[UIApplication sharedApplication] statusBarOrientation]
устарела в iOS9, вы должны проверить UITraitCollection для различных устройств.источник
На Ipad нет изменений в наборе признаков, поэтому вот как вы определяете вращение от начала и до конца. Вот синтаксис Swift 5:
источник