当用户点击UITextField
时,我想将UITextField
移到键盘上方。
我搜索了这个,一些建议是移动整个视图,一些建议是添加scrollview。
但我不想使用scrollview。
我该怎么做?
答案 0 :(得分:0)
将UITextField
底部设为常数,当您在keyboardWillShow
中找到键盘高度时,将UITextField
底部约束增加到KeyboardHeight
。
只需将以下代码放在ViewWillAppear中。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
并将以下代码放在ViewWillDisappear中。
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
方式强>
- (void)keyboardWillShow:(NSNotification *)notification
{
// Get the size of the keyboard.
CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
int keyboardHeight = MIN(keyboardSize.height,keyboardSize.width);
textBottom.constant = 0.0f;
for (UIView *vw in commentView.subviews) {
if ([vw isKindOfClass:[UITextField class]]) {
txtComment = (UITextField *)vw;
textBottom.constant = keyboardHeight;
}
}
}
答案 1 :(得分:-1)
这是一个很棒的解决方案: https://github.com/hackiftekhar/IQKeyboardManager
易于集成和轻松。
您不必在每个UIViewControllers中使用UIScrollView。