IQKeyboardManager 怎么处理 UITextView 的?

本文介绍了如何利用IQKeyboardManager库来处理UITextField和UITextView的键盘显示与隐藏事件,特别是在有多个输入组件时如何调整布局。当键盘弹出,会调整TextView的contentInset以使底部按钮浮于键盘上方;键盘收起时,恢复contentInset。具体实现和代码参考可在GitHub上的SimpleIQKeyboardManager项目中查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IQKeyboardManager 这样处理 UITextView 的键盘事件,

键盘出现,走方法

func adjustPosition() {

UITextView 继承自 UIScrollView,

UITextView 通过判断,过滤掉 UITextField,

if let textView = textFieldView as? UIScrollView, textFieldView.responds(to: #selector(getter: UITextView.isEditable)) {

键盘出现调

textView.contentInset

 

UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in 

     textView.contentInset = newContentInset 
     textView.scrollIndicatorInsets = newContentInset 
})

 


实现这么个需求,

上面有一个输入条,TextField,

中间是一个输入框,TextView

  • 键盘出现,按钮浮现在键盘之上,

  • 键盘消失,按钮恢复在底部


 

常规思路:

  • 键盘出现,把中间 TextView 的高度,缩短

  • 键盘消失,恢复中间 TextView 的高度


也可以中间 TextView 的高度不变,

  • 键盘出现,调高

textView.contentInset

的 bottom

  • 键盘消失,恢复

textView.contentInset


完整代码见

https://github.com/coyingcat/SimpleIQKeyboardManager

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值