0

テキスト フィールド内に触れたときに幅とイメージを変更したいテキスト フィールドがあります。画像は問題なく変更されますが、幅は同じままです。単純なボタンを作成するとアニメーションが機能するため、テキストフィールドに触れたときにトリガーされるアクションに何らかの問題があります。だから私の質問は、テキストフィールドに触れたときにアニメーションを機能させる方法です。

アニメーションはここでは機能しません:

- (void)textFieldDidBeginEditing:(UITextField *)textField{

        [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationCurveEaseOut
                         animations:^{

                         self.textFieldSearchStore.background = [UIImage imageNamed:@"text-field-small.png"];
                         self.textFieldSearchStore.frame = CGRectMake(textFieldSearchStore.frame.origin.x, textFieldSearchStore.frame.origin.y, 248.0f, textFieldSearchStore.frame.size.height);

                     }
                     completion:^(BOOL finished){}
     ];

}

アニメーションはここで動作します:

- (IBAction)test:(id)sender {

    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationCurveEaseOut
                     animations:^{

                         self.textFieldSearchStore.background = [UIImage imageNamed:@"text-field-small.png"];
                         self.textFieldSearchStore.frame = CGRectMake(textFieldSearchStore.frame.origin.x, textFieldSearchStore.frame.origin.y, 248.0f, textFieldSearchStore.frame.size.height);

                     }
                     completion:^(BOOL finished){}
     ];

}
4

2 に答える 2

0

次のような他の方法でself.textFieldSearchStoreのフレームに触れていますか

– textFieldShouldBeginEditing:
– textFieldDidBeginEditing:
– textField:shouldChangeCharactersInRange:replacementString:

または、次の通知をリッスンするメソッド:

UIKeyboardWillShowNotification
UIKeyboardDidShowNotification

またはこれらの方法のいずれか

– canBecomeFirstResponder
– becomeFirstResponder
– touchesBegan:withEvent:

もしそうなら、これらのメソッドにブレークポイントを設定して、上記のメソッドの後に呼び出されているかどうかを確認します。役に立ったら教えてください。

于 2012-10-17T20:51:09.577 に答える
0

問題が解決しました。問題は、Table View Controller を使用していたことです。通常のView Controllerに変更し、動作するようになりました!

于 2012-10-19T12:08:14.740 に答える