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。更改为常规视图控制器,现在可以正常工作了!

于 2012-10-19T12:08:14.740 回答