如何使用Objective-C与ReactiveCocoa中的struct绑定

时间:2015-09-11 20:32:47

标签: ios objective-c reactive-cocoa

当满足某些条件时,我需要更改边框颜色,但我找不到通过编译器的方法:

RAC(self.addrTextField.layer, borderColor) = [validateAddressSignal map:^ CGColorRef* (NSArray *array) {

    if (array.count) {
        return [UIColor greenColor].CGColor;
    }
    return [UIColor clearColor].CGColor;
}];

1 个答案:

答案 0 :(得分:1)

Reactive Cocoa's GitHub Issue跟踪器上提出的类似问题的最优雅解决方案是Erik Price发布的以下内容:

@interface UIView (MyCategoryName)
- (void)setMyBorderColor:(UIColor *)color;
@end

@implementation UIView
- (void)setMyBorderColor:(UIColor *)color
{
    self.layer.borderColor = color.CGColor;
}
@end

// ...

RAC(myTextField, myBorderColor) = mySignalOfUIColors;

基本上,通过向UIView添加类别来轻松绑定颜色。