特有の問題があります。幅280pxから始まる2つのUITextFieldを含むビューがあります。焦点を合わせて、ボタンを表示するために短くしてほしい-私は次のコードでそれを行っています:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
CGRect revealButton = CGRectMake(textField.frame.origin.x, textField.frame.origin.y, 221, textField.frame.size.height);
[UIView beginAnimations:nil context:nil];
textField.frame = revealButton;
[UIView commitAnimations];
NSLog(@"%f",textField.frame.size.width);
}
編集が終了したら、元のフレームに戻る必要があります。
- (void)textFieldDidEndEditing:(UITextField *)textField
{
CGRect hideButton = CGRectMake(textField.frame.origin.x, textField.frame.origin.y, 280, textField.frame.size.height);
[UIView beginAnimations:nil context:nil];
textField.frame = hideButton;
[UIView commitAnimations];
}
初めてテキストフィールドにフォーカスすると、完全に機能します。ただし、他の何かに焦点を合わせた後に最初のテキストフィールドに焦点を合わせる場合(たとえば、最初に最初のテキストフィールドに焦点を合わせ、2番目に焦点を合わせてから最初に焦点を合わせる場合、または最初に2番目に焦点を合わせてから最初に焦点を合わせる場合)、フレームを変更しないだけです。さらに不可解なのは、幅として221を記録するという事実です。これは、画面に表示されません。さらに、この問題は2番目のテキストフィールドには当てはまりません。
何か案は?前もって感謝します...