为什么UIView的帧上的可观察量在订阅后只触发一次



我正在使用RxSwift来观察一个UIView的框架。这是我在视图中的代码

self.rx.observe(CGRect.self, #keyPath(UIView.frame))
.subscribe(onNext: { frame in
print("Got new frame (frame)")
})
.debug()
.disposed(by: disposeBag)

但它只打印一次,当我更改视图框架时不会运行第二次。有谁知道为什么会这样?提前感谢!

这是旧帖子,但我分享我的代码。它工作正常。

self.mapView
.rx
.observe(CGRect.self, #keyPath(UIView.frame))
.asDriver(onErrorJustReturn: CGRect.zero)
.drive(onNext: { (rect) in
log.debug("Frame changed to (String(describing: rect))")
}).disposed(by: self.disposeBag)

在这里,我尝试使用驱动程序观察地图视图的框架。

希望这对您有所帮助。

最新更新