15.使用UIScrollView实现键盘自适应
2015-12-21 18:28
459 查看
在前面, 我们实现过一个在ViewController里的键盘自适应, 现在让我们来看看在UIScrollView是怎么实现键盘自适应的.
PS: 已经更新到Swift 2.0, 支持Xcode7, iOS9
设置NSNotificationCenter
实现UITextField的代理方法
好了, 这次就讲到这里, 下次我们继续
PS: 已经更新到Swift 2.0, 支持Xcode7, iOS9
1.界面布局
2.实现代码
关联控件class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var textFieldOne: UITextField! @IBOutlet weak var textFieldTwo: UITextField! @IBOutlet weak var textFieldThree: UITextField! @IBOutlet weak var textFieldFor: UITextField! @IBOutlet weak var textFieldFive: UITextField! @IBOutlet weak var myScrollView: UIScrollView! }
设置NSNotificationCenter
override func viewDidLoad() { super.viewDidLoad() // 3.实现UITextField代理 textFieldOne.delegate = self textFieldTwo.delegate = self textFieldThree.delegate = self textFieldFor.delegate = self textFieldFive.delegate = self // 4.自定义NSNotifacationCenter NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil) } // 5.自定义当键盘出现时的方法, 参数为NSNotification func keyboardWillShow(notification: NSNotification) { adjustingHeight(true, notification: notification) } // 6.自定义当键盘消失时的方法, 参数为NSNotification func keyboardWillHide(notification: NSNotification) { adjustingHeight(false, notification: notification) } // 7.自定义自适应高度方法 func adjustingHeight(show: Bool, notification: NSNotification) { // 7.1获取userInfo let userInfo = notification.userInfo! // 7.2获取键盘的Frame let keyboardFrame = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue() // 7.3获取显示键盘和消失键盘的高度 let changeInHeight = (CGRectGetHeight(keyboardFrame) + 5) * (show ? 1 : -1) // 7.4设置向下偏移量 myScrollView.contentInset.bottom += changeInHeight // 7.5设置向下添加偏移量 myScrollView.scrollIndicatorInsets.bottom += changeInHeight }
实现UITextField的代理方法
// 8.UITextField代理方法, 当点击return键时, 就执行 func textFieldShouldReturn(textField: UITextField) -> Bool { // 8.1self.view取消编辑状态 self.view.endEditing(true) // 8.2返回true return true }
3.最终效果
好了, 这次就讲到这里, 下次我们继续
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- winform异型不规则界面设计的实现方法
- Android中设置只有程序第一次运行才显示的界面实现思路
- hta 实现的五子棋界面
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- android开发之欢迎界面的小例子
- C#中载入界面的常用方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- android编程实现局部界面动态切换的方法