2011-06-23 9 views
0

私は、ユーザーが電話を揺するとUIWebViewを表示するアプリを持っています。これは、ユーザーがwebviewのリンクをクリックするまで完全に動作します。ユーザーがリンクをクリックすると、画面内の空​​白をクリックして、シェイク機能が再び動作するようにする必要があります。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のような値を見た限界については知らない。制限をチェックする場合は、ドキュメントをチェックする必要があります。 –

関連する問題