Meiqia / MeiqiaSDK-iOS

美洽 iOS SDK 3.9.17 面向开发者的 Demo。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

美洽引用的第三方扩展UIColor+Hex会替换掉TSMessage的导致其背景全部变黑

firebear opened this issue · comments

commented

这个扩展的这段代码不接受#字符作为颜色字符串的首字符,使得TSMessage加载缺省配置文件TSMessageDefaulDesign.json中的颜色值为0x000000,从而使其背景全部变黑。

+ (UIColor *)colorWithHexString:(NSString *)hexString {
    NSScanner *scanner = [NSScanner scannerWithString:hexString];
    unsigned result = 0;
    [scanner scanHexInt:&result];
    return [self.class colorWithHex:result];
}

TSMessage引用的三方的实现是这样的:

+ (HXColor *)colorWithHexString:(NSString *)hexString alpha:(CGFloat)alpha
{
    // Check for hash and add the missing hash
    if('#' != [hexString characterAtIndex:0])
    {
        hexString = [NSString stringWithFormat:@"#%@", hexString];
    }

    // check for string length
    assert(7 == hexString.length || 4 == hexString.length);

    // check for 3 character HexStrings
    hexString = [[self class] hexStringTransformFromThreeCharacters:hexString];

    NSString *redHex    = [NSString stringWithFormat:@"0x%@", [hexString substringWithRange:NSMakeRange(1, 2)]];
    unsigned redInt = [[self class] hexValueToUnsigned:redHex];

    NSString *greenHex  = [NSString stringWithFormat:@"0x%@", [hexString substringWithRange:NSMakeRange(3, 2)]];
    unsigned greenInt = [[self class] hexValueToUnsigned:greenHex];

    NSString *blueHex   = [NSString stringWithFormat:@"0x%@", [hexString substringWithRange:NSMakeRange(5, 2)]];
    unsigned blueInt = [[self class] hexValueToUnsigned:blueHex];

    HXColor *color = [HXColor colorWith8BitRed:redInt green:greenInt blue:blueInt alpha:alpha];

    return color;
}

请看看吧。

@firebear thx,我们下一版把扩展的名字改掉,避免冲突