`
jsntghf
  • 浏览: 2476606 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

晃动特效

    博客分类:
  • iOS
阅读更多

头文件:

 

#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
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics