Trong chương trình của tôi, tôi đang di chuyển mọi thứ dựa trên xoay vòng nhưng tôi không xoay toàn bộ chế độ xem. Tôi đang dùng:Tôi làm cách nào để phát hiện hướng của iPhone trước khi quay
static UIDeviceOrientation previousOrientation = UIDeviceOrientationPortrait;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:viewController.view];
[window makeKeyAndVisible];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:@"UIDeviceOrientationDidChangeNotification" object:nil];
}
- (void) didRotate:(NSNotification *)notification{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
[self doRotationStuff:orientation: previousOrientation];
previousOrientation = orientation;
}
này hoạt động càng lâu càng, khi chương trình được khởi động, hướng thiết bị là chân dung, nhưng không nếu định hướng ban đầu là cảnh quan hoặc lộn ngược, bởi vì [tự doRotationStuff] làm thay đổi tương đối với sự khác biệt so với định hướng trước đó.
Có cách nào để phát hiện hướng hoặc khi khởi chạy hoặc ngay trước khi thiết bị được xoay?
Trong applicationDidFinishLaunching, [UIDevice currentDevice] .orientation là UIDeviceOrientationUnknown –
Tôi không biết gì về thế nào tôi sẽ sử dụng performSelector: afterDelay. Bạn có thể đưa ra một ví dụ mã? –
Tôi đã thử những gì bạn nói nhưng thậm chí [self performSelector: @selector (getOriented) withObject: nil afterDelay: 10.0f]; không có bất kỳ hiệu ứng nào –