Swift中键盘的弹出隐藏,页面抬高,Return键等的配置
目录
1.点击键盘外的区域时键盘隐藏
2.点击输入框时抬高整体页面,防止输入框被键盘遮挡
两个function的添加
viewDidLoad中添加代码
3.Return键的配置
先为class添加UITextFieldDelegate
在viewDidLoad中配置textField的returnkey。
添加function来设置returnkey的功能
1.点击键盘外的区域时键盘隐藏
只需要在工程中添加这个function即可
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {view.endEditing(true)}
2.点击输入框时抬高整体页面,防止输入框被键盘遮挡
两个function的添加
首先添加keyboardWillShow和keyboardWillHide两个function。
@objc private func keyboardWillShow(sender: NSNotification) {if textField.isFirstResponder {guard let userInfo = sender.userInfo else { return }let duration: Float = (userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber).floatValueUIView.animate(withDuration: TimeInterval(duration), animations: { () -> Void inlet transform = CGAffineTransform(translationX: 0, y: -180)self.view.transform = transform})}}// キーボードが閉じられた時@objc private func keyboardWillHide(sender: NSNotification) {guard let userInfo = sender.userInfo else { return }let duration: Float = (userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber).floatValueUIView.animate(withDuration: TimeInterval(duration), animations: { () -> Void inself.view.transform = CGAffineTransform.identity})}
其中textField为UItextField的名称,替换自己的即可。
如果有多个textField需要加入抬高效果,复制if文在其下方并修改textField名称即可。
如果想调整抬高的高度,修改以下部分。修改y的参数,数越小抬得越高。
let transform = CGAffineTransform(translationX: 0, y: -180)
viewDidLoad中添加代码
在viewDidLoad中添加以下代码即可实现该功能。
override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.NotificationCenter.default.addObserver(self,selector: #selector(keyboardWillShow(sender:)),name: UIResponder.keyboardWillShowNotification,object: nil)NotificationCenter.default.addObserver(self,selector: #selector(keyboardWillHide(sender:)),name: UIResponder.keyboardWillHideNotification,object: nil)}
3.Return键的配置
先为class添加UITextFieldDelegate
class record: UIViewController, UITextFieldDelegate
在viewDidLoad中配置textField的returnkey。
@IBOutlet weak var nameOfCost: UITextField!@IBOutlet weak var numberOfCost: UITextField!override func viewDidLoad() {super.viewDidLoad()//设置returnkeynameOfCost.delegate = selfnameOfCost.returnKeyType = .next//此处为设置按键类型nameOfCost.tag = 0//设置它的番号numberOfCost.delegate = selfnumberOfCost.returnKeyType = .donenumberOfCost.tag = 1}
添加function来设置returnkey的功能
func textFieldShouldReturn(_ textField: UITextField) -> Bool {switch textField.tag {case 0:// 在tag是0的textField里,按returnkey执行跳转numberOfCost这个textFieldnumberOfCost.becomeFirstResponder()breakcase 1:// tag是1的textField里什么都不执行breakdefault:break}return true}
Swift中键盘的弹出隐藏,页面抬高,Return键等的配置相关推荐
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案 参考文章: (1)iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案 (2)https://www.cn ...
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()
iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案-scrollIntoView() 参考文章: (1)iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案- ...
- android中监听软键盘的弹出与隐藏,并获取软键盘的高度
最近项目中有一个需求上弹出软键盘的时候,输入框位移至输入框上方,但是Activity中其他的VIew都不动.这个需求需要监听软软键盘的弹出与隐藏,并获取键盘的高度.上网找了一下发现,Android竟然 ...
- 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题
解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题 项目需求: 一个信息提交页面:有input输入框,有picker选择器 遇到的问题: 点击input输入框时,手机自动弹出键盘,但 ...
- 移动端网站,键盘弹出对页面的影响
在移动端网站中,ios与安卓键盘弹出时对页面有不同的处理方式. ios,键盘弹出但整体页面高度不变. 安卓,页面高度=屏幕高度-键盘高度 这样对页面样式就会造成不同的影响. 当有表单弹窗,且弹窗高度在 ...
- js防止安卓手机软键盘弹出挤压页面导致变形的方法
h5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了 ...
- 弹出框页面中使用jquery.validate验证控件
弹出框页面中使用jquery.validate验证控件有几个问题需要解决: 1,弹出框的提交事件完成后如何关闭弹出框页面? 2,提交不成功如何返回当前页? 3,如果知道验证事件成功? 之前笔者都是JS ...
- h5页面键盘弹出影响页面布局(兼容)
其实弹框之所以影响页面布局,我碰到的一般都是因为页面时position:fixed时,键盘一弹出,布局就乱了,我的解决方案是,首先就是把fixed尽可能的改成其他的,接着监听窗口大小变化事件,然后处理 ...
- android判断键盘是否弹出窗口,Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)...
最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判 ...
最新文章
- Mycat实现垂直拆分与水平拆分
- 从 no-code 到 low-code 再到 pro-code
- 基於IIS的WCF的分布式多層架構開發實現
- Android adb命令,linux中各种命令
- mysql drbd pacemaker_corosync+pacemaker+mysql+drbd 实现mysql的高可用
- 【quickhybrid】JSBridge的实现
- [html] 你有使用过ins标签吗?说说它的用途
- idea看更改过的代码_就是你把所有代码全写在一个类里的?
- PyTorch 1.0 中文官方教程:使用字符级别特征的 RNN 网络进行姓氏分类
- mysql scws_php利用scws实现mysql全文搜索功能的方法
- 7月最新发布10.2.0.4.5 Patch Set Update
- 纯java生成验证码 java生成图片并保存
- php网上商城拟解决的问题是,上次说的软件商城BUG,已找到问题,并解决~
- 学习webpack系列之三 ---- (输出管理)
- 最新 CCF A 类人工智能会议论文下载汇总 (含2022)
- 你的工作表现是否成熟,用这4条检验自己
- Python软件编程等级考试二级——20211205
- vue项目首屏加载优化
- org.wltea.analyzer.lucene.IKAnalyzer(IK分词器)
- Altium Designer -- EMC/EMI电路设计经验