React Native 解决 iOS 上键盘遮挡 TextInput 问题

来源:互联网 发布:短信网络陷阱 编辑:程序博客网 时间:2024/05/14 09:32

我们在用 React Native 开发应用的时候,总会碰到让用户输入某些内容的需求和功能,那么也总会有当我们的输入框在屏幕下半部分并且 focus 这个输入框时,键盘弹出并会遮挡在其上,使用户在输入时完全不知道自己在输什么。

IQKeyboardManager 这个第三方库通过了解,是目前在 github 上 star 数最高的解决问题的第三方插件。

它描述自己的插件具有如下有点:

” Codeless, Zero Line Of Code ” - 不需要任何插入代码
” Works Automatically ” - 完全自动化
” No More UIScrollView ” - 不需要任何 UIScrollView 组件
” No More Subclasses ” - 不需要子类
” No More Manual Work ” - 不需要配置性的工作
” No More #imports ” - 不需要 import

在使用它之前,我查到一款管理第三方库的管理工具 - cocoaPod。安装过程不太复杂,但是比较好时间,但是需要注意的时候,要替换国外资源,使用淘宝的国内镜像,你可以从这篇文章中学会如何安装

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

假设你已经安装成功 cocoaPod ,首先进入到 React Native 的项目的根目录,然后进入 根目录/ios 目录,在该文件夹下有项目的 ios 的 xcode 工程文件,执行命令:

pod init

会在当前目录下生成 PodfilePodfile.lock 文件,然后通过 vim 打开 Podfile

# Uncomment the next line to define a global platform for your project# ios 平台版本platform :ios, '9.0'    target 'xxx' do   # Uncomment the next line if you're using Swift or would like to use dynamic frameworks  # use_frameworks!  # Pods for xxx   # pod 第三方插件  pod "IQKeyboardManager"  end

之后 :wq 保存退出,执行:

pod install

等待安装完成。

至此,第三方插件已经下载并依赖到了开发的项目上,但是当我们在 XCode 上进行编译调试的时候,会报如下这种错误:

library not found for -lIQKeyboardManager

通过报错的信息发现,是因为 XCode 在编译的时候,没有找到 IQKeyboardManager 的 Library,并且打开 Frameworks 文件夹发现里面的 libPods-xxx.a 是红色的,因此可能是 IQKeyboardManager 的 Library 没有进行关联,但是在 根目录/ios/Pods 中并咩有发现任何的关于 IQKeyboardManager 的 Library,由于本人对 IOS 开发刚刚起步,因此抱着试试看的想法将 Pod.xcodeproj 文件拖放到 Libraries 文件夹下,重新启动发现问题解决了。

0 0
原创粉丝点击