ios - 显示 UIPickerView 时如何向上移动 View

标签 ios xcode uipickerview nsnotificationcenter

我有一个包含所有文本字段和按钮的主视图。对于我的文本字段,我使用 inputView 来显示 UIPickerViews 而不是键盘。我想知道如何在选择文本字段时让 View 向上移动,这样选择器和选择器工具栏不会覆盖文本字段,因为我在底部有一些文本字段被它覆盖了。我尝试使用带有表格 View 的教程中的以下代码,但它对我不起作用。它构建没有错误,但它不能正常工作。 View 就消失了,然后当 pickerView 被关闭时它才回到一半。

    - (void)viewDidLoad {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pickerShown:) name:UIKeyboardDidShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pickerHidden:) name:UIKeyboardWillHideNotification object:nil];

}

-(void)pickerShown:(NSNotification *)note {
CGRect pickerFrame;
[[[note userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey]   getValue:&pickerFrame];
CGRect scrollViewFrame = mainView.frame;
scrollViewFrame.size.height -= pickerFrame.size.height;
[mainView setFrame:pickerFrame];
}
-(void)pickerHidden:(NSNotification*)note{
[mainView setFrame:self.view.bounds];
}

这接近我需要做的事情吗?

最佳答案

我可以建议看一下 this tutorial “左右滑动 UITextFields 以避开键盘”。

在您的情况下,您需要将它们在 textFieldDidBeginEditing 中的代码放入您的 pickerShown 方法中,并将它们的键盘高度常量更改为选择器高度相反。

希望这有帮助:)

关于ios - 显示 UIPickerView 时如何向上移动 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874588/

相关文章:

ios - 点击字段时,数据未填充到 UIPickerView 中

ios - 如何在 swift 4 中删除和添加 uipickerview 中的项目?

iOS CLLocationManager 在一个单独的类中

ios - 如何解决这个编译错误?

ios - -ObjC 链接器标志 - 尝试将其添加到 "Other Linker Flags"时出现错误

iphone - 如何向 UITextField 和 UITextView 添加方法?

xcode - 添加 Swift 文件后无法运行测试

ios - 如何调试 "fatal error with nil while unwrapping an optional value"?

ios - Xcode - 缺少架构(库链接)

ios - UIPickerView 不会显示