iphone - Xcode iPhone 加速计图像

标签 iphone xcode uiimageview accelerometer

我是法国人,所以请原谅我的英语。所以我使用加速度计,但在我的代码中,加速度计适用于 View 而不是图像。我想做的是将这个加速度计用于图像而不是 View 。我怎样才能做到这一点?这是代码:

#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

最佳答案

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

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

在 MyClass.m 中你必须实现方法

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
  // do what you like
}

但是如果您不是被迫支持 iOS 3.x 版本,您应该考虑使用 CoreMotion API。请参阅Event Handling Guide for iOS / Motion Events获取更多信息和示例。

关于iphone - Xcode iPhone 加速计图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702671/

相关文章:

ios - 滑动手势在 UITableViewCell 中不起作用

ios - 如何从 NSArray 中选择一个 UIImgeView

ios - 缩放 UIImageView 并在缩放范围内移动

iphone - GHUnit错误文件_OBJC_CLASS_$_SenTestCase”,引用

iPhone 应用程序 - 应用程序关闭时生成警报弹出窗口

iphone - 显示别名游戏中心回合制游戏

ios - 你能用IOS7.1 SDK使用XCode6.3吗

iphone - 更改 View 时崩溃(并非总是如此)

iphone - 需要一些有关 iPad 动画编程的指南

ios - UILabel:纯文本和属性文本有什么区别?