我创建了一个信号来观察 -viewDidLoad
中文本字段框架的宽度:
RACSignal *destinationDisplayWidthSignal =
[RACObserve(self.destinationNumberTextField, frame)
map:^id(NSValue *value) {
NSLog(@"rect: %@", NSStringFromCGRect([value CGRectValue]));
return @(CGRectGetWidth([value CGRectValue]));
}];
但是,信号没有发送下一个
-viewDidAppear:
中帧更改后的事件.我尝试更换 frame
与 bounds
它有效!我应该一直遵守
bounds
使用 RACObserve()
的 UIView ?
最佳答案
没有人回答,一些代码会调用-setFrame:
, 而其他代码会调用 -setBounds:
.如果设置 rect 的代码不是您的代码,那么您可以同时观察 bounds
和 frame
并合并两个信号。例如:
[[[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/