gpt4 book ai didi

iphone - 多次按下按钮会导致 ios cocoa 中的单一操作

转载 作者:行者123 更新时间:2023-11-29 04:22:14 25 4
gpt4 key购买 nike

标题说多次按下按钮,但实际上我想要堆叠多个事件。我有一个聊天应用程序,可以一次接收许多聊天消息。在我的 messageReceived 函数中,我想滚动到最近聊天的底部。我遇到的问题是有时会同时收到许多消息(50 条以上)。我已经确定,如果执行 50 次,滚动到底部将是一个巨大的性能瓶颈,但如果仅在收到消息后执行,则效果很好。

我想在 messageReceived 函数中延迟一段时间(例如 0.1 秒)后滚动到底部。但我希望这 0.1 秒内发生的所有新聊天消息都“堆叠”,并且仅发出单个滚动到底部请求。

我认为设置和取消计时器的系统可以解决这个问题,但是我无法做到这一点。有没有更好的方法来实现这一点!谢谢!

最佳答案

如果您正在设置延迟的“滚动到底部”请求,例如

[[self myObject] performSelector:@selector(scrollToBottom:) 
withObject:nil
afterDelay:0.1];

然后你可以使用取消命令,例如

[NSObject cancelPreviousPerformRequestsWithTarget:[self myObject]
selector:@selector(scrollToBottom:)
object:nil];

那么您的 scrollToBottom: 唯一被调用的时间就是它没有被取消的时候(所以,这是最后一次)。现在您不需要计时器。

关于iphone - 多次按下按钮会导致 ios cocoa 中的单一操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829228/

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