我想在textview中每4次更改一次调用函数。 我怎样才能用RXswift debounce油门执行它? 我使用UITextViewDelegate来检测textview中的更改。
答案 0 :(得分:2)
我使用rx.net,其中一种方法是使用split
在查看RxSwift的split
buffer
您有2个参数:
buffer
作为超时func buffer(timeSpan:count:scheduler:)
指定缓冲区的最大元素每次超时或达到最大计数时都会返回窗口。
因此,在您的情况下,只需将超时设置为10年或其他,并将计数设置为4.获取返回的每个窗口的最后一个元素。
导入timeSpan
和count
后,您可以执行以下操作:
RxSwift
注意:对于上面的示例,全局声明RxCocoa
。
答案 1 :(得分:0)
RxSwift 5.0已测试
textField.rx
.text
.orEmpty
.distinctUntilChanged()
.map { _ in 1}
.scan(0, accumulator: { $0 + $1 })
.filter { $0 % 4 == 0 }
.subscribe(onNext: { (value) in
print(value)
})
.disposed(by: disposeBag)
如果您希望每10个元素触发一次射击,则可以将数字4更改为10。祝您好运。