ReactiveCocoa 3 - bufferWithTime

时间:2015-08-24 03:13:11

标签: ios reactive-cocoa reactive-cocoa-3

我一直在使用RACSignal.bufferWithTime。据我所知,RAC 3中没有它的等价物?是否存在使用RAC3模仿bufferWithTime行为的变通方法/技巧?

我的情况是我需要跟踪用户是否在给定的短时间内点击了两次(以捕获双击)。我基本上用大约0.2秒缓冲它,看看是否有超过一个点击。 FIY,我无法使用UIGestureRecognizer,因为我使用的第三方对象只暴露了一个点击API。

谢谢!

1 个答案:

答案 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 ,只需检查每次点击的时间戳即可。请按照以下步骤操作:

  1. 在第三方对象上创建点击事件信号。
  2. bufferWithTime点击事件的信号到时间戳中,表示点击发生时的当前时间
  3. 在点击事件信号上使用map创建一个信号,其值是两个时间戳的元组:第一个是前一个值,第二个是当前值。
  4. combinePrevious此信号通过从第二个值中减去每个元组中的第一个值,并比较它是否达到或超过filter - 秒阈值。
  5. 每当最终信号发送一个值时,就会在前一次点击的0.2秒内发生一次点击。