首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较了OSX和iOS两个节点的iOS?

比较了OSX和iOS两个节点的iOS?
EN

Stack Overflow用户
提问于 2014-04-18 12:35:34
回答 2查看 172关注 0票数 0

我正在通过使用新行字符允许换行来开发\n。它进展顺利,我目前正在确保它在编写podspec之前为OSX和iOS工作。

从表面上看,它似乎是有效的,但我的一个测试在构建OSX时失败了,尽管它通过了iOS测试。这在某种程度上与NSColorSpace有关,但对我来说,这是一个未知的领域。这是类中将颜色复制到子节点的方法:

代码语言:javascript
复制
- (void)setFontColor:(SKColor *)fontColor{
    [super setFontColor: fontColor];
    self.propertyStateholderNode.fontColor    = fontColor;
    for (SKLabelNode *subNode in self.subNodes) {
        subNode.fontColor    = fontColor;
    }
    _fontColor    = fontColor;
}

这是一个失败的测试(我已经删除了对两个平台上通过的其他属性的测试):

代码语言:javascript
复制
- (void)testThatSubnodesInheritsPropertiesFromParent{
    NORLabelNode *threeLineNode    = [self nodeWithThreeSubNodes];
    threeLineNode.fontColor    = [SKColor greenColor];

    for (SKLabelNode *subNode in threeLineNode.subNodes) {
        XCTAssertEqualObjects(threeLineNode.fontColor, subNode.fontColor, @"The subnodes should have the same fontColor as the parent.");
    }
}

测试失败的详细信息如下(threeLineNode.fontColor)等于(subNode.fontColor))失败:("NSCalibratedRGBColorSpace 0 1 0 1")不等于("NSDeviceRGBColorSpace 0 0.976895 0 1") .

我一点也不清楚这些节点是如何形成不同颜色空间的.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-18 13:05:00

因为我们知道颜色空间是不同的,所以在使用-colorUsingColorSpace:(NSColorSpace *)进行比较之前,我会尝试将它们转换为相同的颜色空间。您可以将它们解析为一个已知的颜色空间,也可以将它们转换为彼此的颜色空间。同样,只有在Mac上才会发生这种情况,而且NSColorSpace是可用的。

帖子邮件列表中的CocoaBuilder讨论了比较组件值的问题,但这并不理想,因为组件没有区分rgb和灰度。

票数 1
EN

Stack Overflow用户

发布于 2014-04-18 12:50:43

根据雪碧套件功能参考 SKColor

扩展为特定于平台的颜色类的宏。 #如果TARGET_OS_IPHONE #定义SKColor UIColor #endif #定义SKColor NSColor #endif

正如我们在UIColorNSColor中所看到的,有不同的颜色空间方便方法。

例如,如果您使用colorWithWhite:alpha:,您将得到一个颜色“在设备灰色颜色空间”,如果您使用colorWithHue:saturation:brightness:alpha:,您将得到一个颜色“在设备RGB颜色空间”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23154290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档