gpt4 book ai didi

ios - 无法将 UIView 移到 UITableView 上

转载 作者:行者123 更新时间:2023-11-29 11:56:53 26 4
gpt4 key购买 nike

我正在用 Objective-C 创建一个聊天应用程序。我的对话面板有两个项目,文本字段和将显示消息的表格。我正在为文本字段及其按钮使用 UIView,此 View 位于屏幕底部。每当我开始打字时,键盘就会出现,您可以猜到,文本字段是不可见的。

我知道使用 ScrollView ,但这次 ScrollView 不太适合,因为我不想让 TableView 向上移动。使用 TableViewController 而不是 ViewController 是页脚的一个选项,但在此选项中,如果没有消息,则页脚位于顶部。

因此,我正在使用 ViewController 并以编程方式移动包含文本字段的 View 。我的代码是:

- (void) keyboardWasShown:(NSNotification *)notification {

[UIView animateWithDuration:0.3 animations:^{
NSDictionary* keyboardInfo = [notification userInfo];
NSValue* keyboardFrameEnd = [keyboardInfo valueForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [keyboardFrameEnd CGRectValue];
[self.textFieldViewBottomConstraint setConstant:+(keyboardRect.size.height)];
[self.view setNeedsLayout];
}];
}

此代码在没有 TableView 时有效。我看到我的观点上升了。然而,由于有一个 TableView , View 和文本字段仍然保持不可见。它们在 TableView 下。

我该怎么做?如何将 View 移动到 TableView 上?

最佳答案

大多数情况下,包含 View 的 textField 位于 tableView 下方。

Try giving constraints as, tableview top to superview and the view top to tableview

并给出其他约束。为 tableView 的顶级约束取一个导出。当您收到 keyboardWasShown 时,将顶部约束更改为某个令人满意的 -ve 值,并且当再次关闭键盘时,为 tableview 顶部设置先前的约束。我以前处理过这种情况,这种方法对我有用,可能对你也有用。

或者,如果您真的想将 View 移动到 tableView 上方,请尝试使用

self.view.bringSubviewToFront(self.yourView)

它将避免 View 低于 tableview。

关于ios - 无法将 UIView 移到 UITableView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38713251/

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