반응형
iOS : 기기가 회전 한 후 기능을 실행하는 방법 (Swift)
Auto-Layout을 사용하지 않는 UIView가 하나 있고 일부 구성 요소는 기본보기에서 X 및 Y 좌표의 백분율을 기준으로 표시됩니다.
이전에는 didRotateFromInterfaceOrientation에서 위치를 업데이트하는 함수를 실행했지만 이제 iOS8에서는 더 이상 사용되지 않습니다.
viewWillTransitionToSize를 살펴 보았지만 이상한 결과가 나오고 viewDidtransitionToSize 함수가없는 것 같습니다.
장치 회전 후 기능을 실행하는 쉬운 방법 (Swift에서)이 있습니까?
viewWillTransitionToSize
위임 메소드가 호출됩니다 UIViewControllerTransitionCoordinator
부합하는 객체입니다. 프로토콜이 선언하는 메서드는 animateAlongsideTransition(_:animation, completion:)
. 이를 사용하여 전환이 완료된 후 코드를 실행할 수 있습니다.
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
coordinator.animateAlongsideTransition(nil, completion: {
_ in
// Your code here
})
}
위의 답변 https://stackoverflow.com/a/26944087/6583492 는 Acey와 Moonwalkr 덕분에 절대적으로 옳습니다. 그러나 신속한 3.0의 경우 다음과 같이 보입니다.
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: nil) { _ in
// Your code here
}
}
여기서 Objective C 버전을 요구하지는 않지만 :
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
// change any properties on your views
} completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
if( UIDeviceOrientationIsPortrait(orientation) ) {
NSLog(@"portrait");
} else {
NSLog(@"landscape");
}
}];
}
반응형
'IT TIP' 카테고리의 다른 글
Linux 셸에서 정규식을 사용하여 파일에서 IP 주소를 어떻게 추출합니까? (0) | 2020.12.09 |
---|---|
jquery 데이터 테이블 숨기기 열 (0) | 2020.12.09 |
인증 플러그인 'caching_sha2_password'를로드 할 수 없음 문제 해결 방법 (0) | 2020.12.09 |
가능한 한 쉽게 다형성을 설명하십시오. (0) | 2020.12.09 |
file_get_contents ()가 UTF-8 문자를 분리합니다. (0) | 2020.12.09 |