gpt4 book ai didi

ios - 出现键盘时的 tableView 与 scrollView 行为

转载 作者:行者123 更新时间:2023-11-29 01:36:54 25 4
gpt4 key购买 nike

如果文本字段打开键盘并且文本字段是 tableView 的成员,那么它将能够滚动 tableView 以能够看到最后一个项目,并且键盘不会隐藏该项目。

enter image description here

如何? UITableView 继承自 UIScrollView。我想打开键盘会增加内容偏移量?我说得对吗?

如果 textfield 是 scrollView 的一部分,而不是 tableView,则不会发生这种效果,并且键盘可以隐藏位于 scrollView 下部的其他控件。

如果我想看到 scrollView 和 tableView 一样的效果,我应该手动设置内容偏移量吗?

enter image description here

最佳答案

是的,您必须手动设置内容偏移量。

首先您注册通知

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name:UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name:UIKeyboardWillHideNotification, object: nil)

然后在你的观察者方法中。

func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}

func keyboardWillShow(notification:NSNotification){

var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
keyboardFrame = self.view.convertRect(keyboardFrame, fromView: nil)

var contentInset:UIEdgeInsets = self.scrollView.contentInset
contentInset.bottom = keyboardFrame.size.height
self.scrollView.contentInset = contentInset
}

func keyboardWillHide(notification:NSNotification){

var contentInset:UIEdgeInsets = UIEdgeInsetsZero
self.scrollView.contentInset = contentInset
}

关于ios - 出现键盘时的 tableView 与 scrollView 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com