reactive-cocoa - RACObserve 边界或 UIView 的框架?

标签 reactive-cocoa

我创建了一个信号来观察 -viewDidLoad 中文本字段框架的宽度:

RACSignal *destinationDisplayWidthSignal =
    [RACObserve(self.destinationNumberTextField, frame)
        map:^id(NSValue *value) {
            NSLog(@"rect: %@", NSStringFromCGRect([value CGRectValue]));
            return @(CGRectGetWidth([value CGRectValue]));
        }];

但是,信号没有发送下一个 -viewDidAppear: 中帧更改后的事件.我尝试更换 framebounds它有效!

我应该一直遵守 bounds使用 RACObserve() 的 UIView ?

最佳答案

没有人回答,一些代码会调用-setFrame: , 而其他代码会调用 -setBounds: .如果设置 rect 的代码不是您的代码,那么您可以同时观察 boundsframe并合并两个信号。例如:

[[[RACSignal
    merge:@[RACObserve(view, frame), RACObserve(view, bounds)]]
    logNext]
    map:^(NSValue *value) {
        return @(CGRectGetWidth([value CGRectValue]));
    }]

关于reactive-cocoa - RACObserve 边界或 UIView 的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484128/

相关文章:

ios - 我可以在 swift 3 中使用 ReactiveCocoa 吗?

ios - 使用 ReactiveCocoa 实现 Pan Gesture 接口(interface)

ios - ReactiveCocoa 与 MVVM

swift - 如何链接传递结果的 SignalProducers

swift - 为 Alamofire 和 Argo 创建响应式扩展

ios - 设置间隔时 QueueScheduler 不触发

ios - ReactiveCocoa 3 和 ReactiveCocoa 4 中的多播

ios - 带有 ReactiveCocoa 的 MVVM,ViewModel 如何告诉 View 做一些一次性操作?

objective-c - 使用 ReactiveCocoa,我应该如何处理一次向信号订阅者发送一个项目(而不是项目列表)?

ios - ReativeCocoa以信号序列返回NSURLConnection的结果