ユーザーがデバイスの位置を変更したときに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) {
...
}
}
誰かが私が間違っていることを見ることができますか、そして私はこれをどのように修正できますか?