2016-12-23 92 views
0

我可以通過RxSwift觀察只讀變量嗎?觀察只讀變量

我試圖從extendal庫觀察變量(iCarousel

這是我的代碼:

carouselView.rx.observe(Bool.self, "isScrolling") 
    .map { $0 != nil } 
    .subscribe(onNext: { (isScrolling) in 
     print("isScrolling", isScrolling) 
    }).addDisposableTo(disposeBag) 

控制檯打印這一點,但只有一次:

isScrolling, false 

回答

0

它可能是因爲它是用戶滾動而不是程序滾動?

這是來自iCarousel文檔。

@property (nonatomic, readonly, getter = isScrolling) BOOL scrolling; 

如果傳送帶目前正在以編程方式滾動,則返回YES。

如果這是你可能希望在組合使用這些情況

@property (nonatomic, readonly, getter = isDragging) BOOL dragging; 

返回YES,如果用戶已經開始滾動旋轉木馬,還沒有公佈它。

@property (nonatomic, readonly, getter = isDecelerating) BOOL decelerating; 

如果用戶不再拖動輪播,但它仍在移動,則返回YES。

+0

歐凱,但我仍然編程方式滾動 – moto0000

0

我現在看到它。這相當於

.map { $0 != nil } 

.map{return ($0 != nil)} 

所以你沒有返回天氣或不是它是零,但它的布爾值是零。 你想使用的是過濾

carouselView.rx.observe(Bool.self, "isScrolling") 
    .filter { $0 != nil } 
    .subscribe(onNext: { (isScrolling) in 
     print("isScrolling", isScrolling) 
    }).addDisposableTo(disposeBag) 
+0

它不工作;( – moto0000

+0

你仍然得到錯誤的值或者你只是得到一個值 –

+0

仍然有一個值;( – moto0000