Xcode iPhone加速计图像

Xcode iPhone加速计图像,iphone,xcode,uiimageview,accelerometer,Iphone,Xcode,Uiimageview,Accelerometer,我是法国人,请原谅我的英语。所以我使用了一个加速计,但在我的代码中,加速计用于视图,而不是图像。我想做的是用这个加速计来显示图像而不是视图。我该怎么做?代码如下: #define CONST_fps 100. #define CONST_map_shift 0.01 #define kFilteringFactor 0.1 UIAccelerationValue rollingX, rollingY, rollingZ; @implementation MapViewRotationViewC

我是法国人,请原谅我的英语。所以我使用了一个加速计,但在我的代码中,加速计用于视图,而不是图像。我想做的是用这个加速计来显示图像而不是视图。我该怎么做?代码如下:

#define CONST_fps 100.
#define CONST_map_shift 0.01
#define kFilteringFactor 0.1
UIAccelerationValue rollingX, rollingY, rollingZ;

@implementation MapViewRotationViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    // accelerometer settings
    [[UIAccelerometer sharedAccelerometer] setDelegate:self];
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / CONST_fps)];
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    rollingX = (acceleration.x * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor));

    rollingY = (acceleration.y * kFilteringFactor) + (rollingY * (1.0 - kFilteringFactor));

    rollingZ = (acceleration.z * kFilteringFactor) + (rollingZ * (1.0 - kFilteringFactor));

    float accelX = acceleration.x - rollingX;
    float accelY = acceleration.y - rollingY;
    float accelZ = acceleration.z - rollingZ;

    static CGFloat ZZ = 0.;
    CGFloat z = (atan2(rollingX, rollingY) + M_PI);

    if (fabsf(ZZ - z) > CONST_map_shift)
    {
        viewToRotate.layer.transform = CATransform3DMakeRotation(ZZ=z, 0., 0., 1.);
    }
}

@end

您不需要将视图作为回调,而是可以选择任何符合协议的类。只需在头文件中将您的类声明为

@interface MyClass : NSObject <UIAccelerometerDelegate> {
  // my members
}

<>但是如果你不支持iOS版本3 .x,你应该考虑使用CyFristAPI。有关更多信息和示例,请参阅。

我不明白您在这里问什么。如果可以使用上述代码旋转视图,为什么该视图不能是UIImageView?
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
  // do what you like
}