2

私が知る限り、XCode で iPad シミュレーターを使用している間、私のアプリは加速度計イベントを発生させるはずですが、そうではありません。

私はググってみましたが、加速度計がシミュレータに実装されていないように見えますが、これは正しいですか? もしそうなら、なぜ彼らは「ハードウェア - >シェイクジェスチャー」メニューオプションを持っているのでしょうか?

私のコードは次のとおりです。

.h ファイル:

@interface MyViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate, UIAccelerometerDelegate>{
    UIAccelerometer *accelerometer;
    //...other stuff
}
@property (nonatomic, retain) UIAccelerometer *accelerometer;
@end

次に、.m ファイル:

@implementation MyViewController
@synthesize accelerometer;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"X: ", acceleration.x]);
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"Y: ", acceleration.y]);
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"Z: ", acceleration.z]);
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.accelerometer = [UIAccelerometer sharedAccelerometer];
    self.accelerometer.updateInterval = .1;
    self.accelerometer.delegate = self;
}
@end

これは正しく見えますか?

4

2 に答える 2

5

シミュレーターにはアクセラレーターはありません。

「ハードウェア→シェイクジェスチャ」は、UIEventをアクティブなアプリケーションに直接送信することによって生成されます。

Shake Gestureはデバイスのアクセラレータを使用して実装されますが、概念的には2つの異なる種類のユーザー入力です。ジェスチャはイベントであり、加速度は連続的な変化です。したがって、Shake Gestureメニュー項目は、そのようなジェスチャのみを使用するアプリ(Shake to Undoなど)に存在しますが、正確な加速度ベクトルを知る必要はありません。

于 2010-05-04T11:00:02.763 に答える
1

加速度計は iPhone/iPod Simulator では動作しません。「Hardware->Shake Gesture」は、加速度計もシミュレーターのSafariの向き変更も使用しません。

于 2010-05-04T05:27:46.937 に答える