我一直在使用RACSignal.bufferWithTime
。据我所知,RAC 3中没有它的等价物?是否存在使用RAC3模仿bufferWithTime
行为的变通方法/技巧?
我的情况是我需要跟踪用户是否在给定的短时间内点击了两次(以捕获双击)。我基本上用大约0.2秒缓冲它,看看是否有超过一个点击。 FIY,我无法使用UIGestureRecognizer
,因为我使用的第三方对象只暴露了一个点击API。
谢谢!
答案 0 :(得分:1)
您不需要show do
# the array contains the fields to be hidden in the show table
attributes_table *(AdminUser.column_names.map(&:to_sym) - [:last_sign_in_ip, :sign_in_count])
end
,只需检查每次点击的时间戳即可。请按照以下步骤操作:
bufferWithTime
点击事件的信号到时间戳中,表示点击发生时的当前时间 。map
创建一个信号,其值是两个时间戳的元组:第一个是前一个值,第二个是当前值。combinePrevious
此信号通过从第二个值中减去每个元组中的第一个值,并比较它是否达到或超过filter
- 秒阈值。每当最终信号发送一个值时,就会在前一次点击的0.2秒内发生一次点击。