【发布时间】:2017-07-15 10:55:34
【问题描述】:
我有一个使用其xib 文件创建的 exampleUIViewController。 mainView 包含一些 textFields。当点击textField(开始编辑)时,我会用动画显示键盘:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
self.view.frame = self.initialFrame;
[textField resignFirstResponder];
[UIView animateWithDuration:0.25 animations:^
{
CGRect newFrame = [view frame];
newFrame.origin.y -= PORTRAIT_KEYBOARD_HEIGHT;
[view setFrame:newFrame];
}completion:^(BOOL finished)
{
}];
return YES;
}
然后在textFieldShouldReturn:
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
self.view.frame = self.initialFrame;
[textField resignFirstResponder];
[UIView animateWithDuration:0.25 animations:^
{
CGRect newFrame = [view frame];
newFrame.origin.y += PORTRAIT_KEYBOARD_HEIGHT;
[view setFrame:newFrame];
}completion:^(BOOL finished)
{
}];
return YES;
}
在viewDidLoad 中,我将self.initialFrame 设置为:
self.intialFrame = self.view.frame;
问题是当显示键盘时,mainView 的宽度会发生变化并变大。
我做错了什么?
为什么我只有xib 有这个问题,而不是storyboard 中创建的UIViewController?
我该如何解决这个问题?
【问题讨论】:
标签: ios objective-c uiviewcontroller keyboard xib