IOS UITableView中UITextField 弹出键盘时,界面上移
2016-04-18 11:33
513 查看
IOS 中键盘遮挡住UITextField的输入框,导致用户体验不好,一直是IOS的难点所在。
自学IOS时间不长,对于这个问题,如下是我的方法,仅供参考。
如果UITextField位于屏幕下方,键盘弹出时会挡住UITextField,建议将UITextField放入UIScrollview或UITableView中。
废话不多说,直接上代码
以上代码的tableView可以换成自己的scrollView。
UIScrollView contentInset : 视图在scrollView中的位置
UIScrollView scrollIndicatorInsets : 指定滚动条在scrollerView中的位置
自学IOS时间不长,对于这个问题,如下是我的方法,仅供参考。
如果UITextField位于屏幕下方,键盘弹出时会挡住UITextField,建议将UITextField放入UIScrollview或UITableView中。
废话不多说,直接上代码
override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) //add notification for keyboard did change frame NSNotificationCenter.defaultCenter().addObserver(self, selector: "didChangeKeyboardFrame:", name: UIKeyboardDidChangeFrameNotification, object: nil) //add notification for keyboard did hide NSNotificationCenter.defaultCenter().addObserver(self, selector: "didHideKeyboard:", name: UIKeyboardDidHideNotification, object: nil) }
override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated) //remove keyboard observer NSNotificationCenter.defaultCenter().removeObserver(self) }
func didChangeKeyboardFrame(notification: NSNotification) { let rect = notification.userInfo![UIKeyboardFrameEndUserInfoKey]!.CGRectValue let height = rect.size.height var insets = self.tableView.contentInset insets.bottom = height self.tableView.contentInset = insets insets = self.tableView.scrollIndicatorInsets insets.bottom = height self.tableView.scrollIndicatorInsets = insets } func didHideKeyboard(notification: NSNotification) { var insets = self.tableView.contentInset insets.bottom = 0.0 self.tableView.contentInset = insets insets = self.tableView.scrollIndicatorInsets insets.bottom = 0.0 self.tableView.scrollIndicatorInsets = insets }
以上代码的tableView可以换成自己的scrollView。
UIScrollView contentInset : 视图在scrollView中的位置
UIScrollView scrollIndicatorInsets : 指定滚动条在scrollerView中的位置
相关文章推荐
- 子视图超出父视图部分仍然响应点击事件的处理
- String StringBuffer StringBuilder
- 232. Implement Queue using Stacks
- iOS中UIActionSheet使用详解
- RequireJS学习资料
- 建造(Builder)模式
- com.ibatis.common.beans.ProbeException: There is no READABLE property named 'baiduIndex' in class 'j
- SoapUI接口测试实例(webservice接口)
- cordova build android 补充
- 解决办法:Access restriction: The type JPEGImageEncoder is not accessible due to restriction
- Mysql错误:Ignoring query to other database解决方法
- MongoVUE模糊查询,更新单个字段
- UIPresentationController简介
- ORA-01789: query block has incorrect number of result columns
- web.xml is missing and <failOnMissingWebXml> is set to true[解决]
- requireJS
- UITextField详解
- flashback query
- IOS Could not build module 'foundation'
- DuiLib学习-DuiLib中的通知事件