问题描述
当键盘显示时,我想提升视野。键盘(高度:216)应该用它的高度向上推动我的视线。这可以用一个简单的代码吗?
I'd like to move up my view, when the keyboard is shown. The keyboard (height: 216) should push up my view with it's height. Is this possible with a simple code?
推荐答案
移动视图 up
,只需更改其中心
即可。首先,将原始版本保存在 CGPoint
属性中。
To move the view up
, just change its center
. First, keep the original one in a CGPoint
property.
- (void)viewDidLoad
{
...
self.originalCenter = self.view.center;
...
}
然后,当键盘出现时根据需要进行更改:
Then, change as needed when keyboard shows up:
self.view.center = CGPointMake(self.originalCenter.x, /* new calculated y */);
最后,在隐藏键盘时恢复它:
Finally, restore it when keyboard is hidden:
self.view.center = self.originalCenter;
根据需要添加动画糖
您有多种方法可以知道键盘何时出现。
You have more than one way to know when the keyboard appears.
观察 UIKeyboardDidShowNotification 通知。
/* register notification in any of your initWithNibName:bundle:, viewDidLoad, awakeFromNib, etc. */
{
...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
...
}
- (void)keyboardDidShow:(NSNotification *)note
{
/* move your views here */
}
与 UIKeyboardDidHideNotification
相反。
-OR -
实施 UITextFieldDelegate
在编辑开始/结束时检测以移动视图。
Detect when editing begin/end to move views around.
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
/* keyboard is visible, move views */
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
/* resign first responder, hide keyboard, move views */
}
根据您可能需要跟踪用户编辑的字段的实际文本字段,添加计时器以避免过多地移动视图。
Depending on the actual text fields you may need to track in which field is the user editing, add a timer to avoid moving views too much.
这篇关于Xcode / iOS5:键盘出现时向上移动UIView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!