我有一个应用程序,当用户更改设备的位置时,我正在让我的 iOS 设备发出声音。我让用户将设备置于平面位置、横向位置,然后是纵向位置,当用户在适当的时间将设备置于这些位置时,应用程序会发出声音以确认位置。
然而,我的问题是,如果设备最初处于平放位置(例如平放在桌子上),设备不会发出声音。换句话说,只有当用户将设备放在那个位置时才会发出声音,并且不会立即感觉到它已经在的位置。有没有办法让我纠正这个问题,以便应用程序在最初处于该位置或置于正确位置时发出声音?这是我的相关代码:
- (void) orientationCheck {
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];
timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(showTextOnly) userInfo:nil repeats:NO];
}
- (void) orientationChanged:(NSNotification *)note
{
UIDevice *device = note.object;
if(currentTest == flatTest) {
testLabel.frame = CGRectMake(50, 30, 200, 150);
[testLabel setText:@"Hold device on its side."];
testImage.frame = CGRectMake(10, 150, 300, 200);
testImage.image = [UIImage imageNamed:@"accelerometer test - side.png"];
if (device.orientation == UIDeviceOrientationFaceUp || device.orientation == UIDeviceOrientationFaceDown) {
...
}
}
谁能看到我做错了什么,以及如何解决这个问题?