2011-06-23 31 views
0

我有一個應用程序在用戶搖動手機後顯示UIWebView。它完美的工作,直到用戶點擊web視圖中的鏈接。一旦用戶點擊鏈接,他們必須點擊屏幕上的空白區域才能使搖動功能重新開始工作。iPhone MotionShake在點擊鏈接後停止工作

正如您在下面看到的,我已經包含了canBecomeFirstResponder和webViewDidFinishLoad函數。請幫忙!

#import "phonetiltViewController.h" 

@implementation phonetiltViewController 

-(void)viewDidAppear:(BOOL)animated { 
    [self becomeFirstResponder]; 
} 

-(void)viewDidDisappear:(BOOL)animated { 
    [self resignFirstResponder]; 
} 

- (BOOL)canBecomeFirstResponder 
{ // Shake gesture pops to top. If you don't want this override and 
    return YES; 
} 

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (event.subtype == UIEventSubtypeMotionShake) { 
     [webView loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString:@"http://www.google.com"]]]; 
    } 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [self becomeFirstResponder]; 
} 

回答

0

然後嘗試UIAccelerometer。您可以使用它的代理方法如下

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration{ 
if(acceleration.x>1.5 || acceleration.y>1.5 || acceleration.z>1.5){ 
//load page} 
+0

謝謝!我已將加速度值設置爲「2」。 「2」是加速度值的限制嗎? – Brandon

+0

不,我不知道限制我已經看到像6和8的價值。如果你想檢查限制,你必須檢查文檔。 –