晃动特效
头文件:
?
#import <UIKit/UIKit.h>@interface AccelerometerViewController : UIViewController <UIAccelerometerDelegate> {UILabel *label;}@property (nonatomic, retain) IBOutlet UILabel *label;@end
?
实现文件:
?
#import "AccelerometerViewController.h"@implementation AccelerometerViewController@synthesize label;- (void)viewDidLoad {[super viewDidLoad];UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];accelerometer.delegate = self;accelerometer.updateInterval = 1.0f/60.0f;}- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {static NSInteger shakeCount = 0;static NSDate *shakeStart;NSDate *now = [[NSDate alloc] init];NSDate *checkDate = [[NSDate alloc] initWithTimeInterval:2.0f sinceDate:shakeStart];if ([now compare:checkDate] == NSOrderedDescending || shakeStart == nil) {shakeCount = 0;shakeStart = [[NSDate alloc] init]; }[now release];[checkDate release];if (fabsf(acceleration.x) > 2.0 || fabsf(acceleration.y) > 2.0|| fabsf(acceleration.z) > 2.0) {shakeCount++;if (shakeCount > 4){shakeCount = 0;shakeStart = [[NSDate alloc] init];label.text = @"地震了"; [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(cleartext) userInfo:nil repeats:NO];}}} -(void)cleartext{label.text = @"没地震";}- (void)dealloc {[label release];label = nil;[super dealloc];}@end?