gpt4 book ai didi

ios - iMessage 风格聊天框与键盘后退

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

我进行了大量搜索并实现了从类似问题中找到的几个代码片段。

我已经使用了几个这样的已回答问题:iMessage Style Receding Keyboard in an iOS App

设置后退键盘。这非常有效!我可以向下滚动,一旦我的手指碰到键盘,它就会开始向下滑动,直到我放开它,它才会从屏幕上弹出。现在我的问题是让键盘正上方的 UITextView 像在 iMessage 中一样工作。我想要的是,一旦我的手指碰到 UITextView 的顶部,或者我写消息的地方也开始滑落。

DaKeyboardControl 在 iOS 8 上损坏,所以这不是一个选项,我不想使用第三方自定义 API。

同样,我的问题是如何让键盘和 TextView (用于输入您的消息)在我的手指碰到 TextView 时向下滑动。现在我的手指滑过 textView,然后一旦它碰到键盘就开始滑落。我不希望我的手指在开始滑动之前通过 textView。这是我正在谈论的视频: http://d.pr/v/8Pa6

最佳答案

假设您已按照问题中的链接教程进行操作。我会将包含 UITextView 和“发送”按钮的 View 称为代码中的简单 textView

您需要将 textView 的框架包括在计算发生触摸的位置以及需要移动的位置时。此外,保留 previousY 的实例变量,该变量将保存触摸移动位置的 y 坐标。

touchesMoved 方法中:

...
//updateY = keyboardSuperView.frame.origin.y;
if (point.y < keyboardSuperFrame.origin.y - textView.frame.size.height)
return;

//if(point.y < previousY || point.y > previousY)
//{
// previousY = point.y;
updateY = point.y + textView.frame.size.height;
//}
...

如果您对此有任何问题,请告诉我,因为我实际上没有测试过任何东西。


编辑:@Sam 引起了我的注意,我的第二个 if 条件是非常不必要的。无论 y val 是否改变,第三个 if(未显示)仍然只会在 y val 改变而没有第二个的情况下触发如果。只需要设置updateY即可。

关于ios - iMessage 风格聊天框与键盘后退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389638/

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