2011-09-12 4 views
0

こんにちは友達アニメーション道のiPhone SDKの上から見えるメイクのテキストフィールドは、私は、コードを使用しています

- (BOOL)textFieldShouldReturn:(UITextField *) sender 
{ 
    appDelegateObj.plogoImgView.hidden=NO; 

    [sender resignFirstResponder]; 

    if (verticalOffset!=0) 
    { 
     [self moveView: -verticalOffset]; 
     verticalOffset = 0; 
    } 

    return TRUE;  
} 

- (void)textFieldDidBeginEditing:(UITextField *)theTextField 

{ 
    appDelegateObj.plogoImgView.hidden=YES; 

    int wantedOffset; 

    if(theTextField.tag==10) 

     wantedOffset = theTextField.frame.origin.y - 50; 

    else 

    { 
     wantedOffset = theTextField.frame.origin.y - 150; 
    } 

    if (wantedOffset < 0) 
    { 
     wantedOffset = 0; 
    } 

    if (wantedOffset != verticalOffset) 
    { 
     [self moveView: wantedOffset - verticalOffset]; 
     verticalOffset = wantedOffset; 
    } 

} 
- (void)moveView:(int)offset 

{ 
    [UIView beginAnimations:nil context:NULL]; 

    [UIView setAnimationDuration:0.3]; 

    CGRect rect = self.view.frame; 

    rect.origin.y -= offset; 

    self.view.frame = rect; 

    [UIView commitAnimations]; 
} 

私の問題は、上記のコードですビューはメソッドがどのように動作していないと呼ばれる表示されますいつでも作業が、デバイス内れますビューを書くことは私に教えてください表示されます。

事前に感謝..

答えて

0

私は本当にあなたの質問からすべてのものを得ることはありませんが、私はそれをやってみますよ。

だからあなたが言う:

問題は、上記のコードが動作しているが、デバイス内のビューは、メソッドはその私を教えてください表示されるビューを作成する方法を働いていないと呼ばれる表示されますいつでもあります。

あなたが見たチュートリアルでコードが動作しているのですか、それともあなたのシミュレータではなくデバイス上で動作していますか?

私はいくつかのアニメーションコードがシミュレータでは動作しますが、デバイスでは動作しないと私には奇妙に見えます。だから私は問題ではありません。

あなたはviewWillについて話していますが、呼び出されていません。ナビゲーションコントローラを使用していますか?ナビゲーションコントローラベースのアプリケーションでは、viewWillAppearメソッドは呼び出されません。

あなたが使用しているキーボードの表示と非表示に使用するメソッドもちょっと変わっていますが、UITextFieldのアニメーションについて話していますが、全体のビューを移動していますか?

目的のテキストフィールドまたは少なくとも1つのインスタンス変数のプロパティを作成するだけで、そのテキストフィールドを任意のメソッドからアドレス指定して、その/からアニメーション化できるのはなぜですか。

あなたはnivationコントローラを使用している場合: メソッドを作成し、「moveTextFieldIn」のようなもの、それを呼び出し、その後、以前のViewControllerにあなたは、おそらくこのようなものがあります:

UIViewController * nextViewController = [[UIViewController alloc] init]; 
[[self navigationController] pushViewController:nextViewController animated:YES]; 
[nextViewController release]; 

変更することをこの:

UIViewController * nextViewController = [[UIViewController alloc] init]; 
[nextViewController moveTextFieldIn]; 
[[self navigationController] pushViewController:nextViewController animated:YES]; 
[nextViewController release]; 

またはこれに(あなたはmoveTextFieldInを作成していない場合):

UIViewController * nextViewController = [[UIViewController alloc] init]; 
[nextViewController viewWillAppear]; 
[[self navigationController] pushViewController:nextViewController animated:YES]; 
[nextViewController release]; 

よく、たくさんの推測ですが、これがあなたを助けてくれることを願っています! あなたは、コードの行を削除清潔に保つことができるように、標準的なアニメーションの再生時間は、0.3である;-)

もう一つ