2011-01-14 66 views
0

我已經在iphone中創建了搖動應用程序,但我有一個問題。我希望當我每次搖一搖我的iPhone時都會出現一張圖片。任何人都可以幫助我怎麼可能。 這是我寫的代碼:如何讓圖像每次出現時,我搖我的iPhone

CGRect myImageRect = CGRectMake(110.0f, 70.0f, 220.0f, 380.0f); 
//This line is for setting my tick.png image on my image view 
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
      [myImage setImage:[UIImage imageNamed:@"tick_mark.png"]]; 
     [self.view addSubview:myImage]; 

      //animation 
     [UIView beginAnimations:nil context:nil]; 
      [UIView setAnimationDuration:1]; 
       [myImage setAlpha:0.0]; 
      [UIView commitAnimations]; 

     [myImage release]; 

這是開始的動畫和我有我的形象的α設定爲0.0,使我的形象會消失。此代碼正常工作。但我想要它,所以當我再次搖動我的iPhone時,我的圖像應該重現每一次搖動。這怎麼可能。

+0

請正確地格式化代碼。其難以閱讀 – Robin 2011-01-14 05:48:12

+0

..你有沒有嘗試過的代碼? – Aditya 2011-01-14 09:30:01

回答

0

我建議你使用UIAccelerometer爲了這個目的,使用下面的代碼

@interface PageLoopViewController : UIViewController<UIAccelerometerDelegate> { 
UIAccelerationValue myAccelerometer[3]; 
} 
******************* .m code********************* 

#define kAccelerometerFrequency 10 //Hz 
#define kFilteringFactor  0.5 
#define kEraseAccelerationThreshold 0.2 

-(void)viewDidLoad{ 
[[UIAccelerometer sharedAccelerometer] setDelegate:self]; 


[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.30/kAccelerometerFrequency)]; 

} 

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration 
{ 
UIAccelerationValue length, x, y,z; 


//Use a basic high-pass filter to remove the influence of the gravity 
myAccelerometer[0] = acceleration.x * kFilteringFactor + myAccelerometer[0] * (1.0 - kFilteringFactor); 
myAccelerometer[1] = acceleration.y * kFilteringFactor + myAccelerometer[1] * (1.0 - kFilteringFactor); 
myAccelerometer[2] = acceleration.z * kFilteringFactor + myAccelerometer[2] * (1.0 - kFilteringFactor); 
// Compute values for the three axes of the acceleromater 
x = acceleration.x - myAccelerometer[0]; 
y = acceleration.y - myAccelerometer[1]; 
z = acceleration.z - myAccelerometer[2]; 

//Compute the intensity of the current acceleration 
length = sqrt(x * x + y * y + z * z); 
if(length > kEraseAccelerationThreshold) 
{ 
    //Image code    

} 

} 

乾杯

相關問題