2015-03-25 62 views
-2

如果我在界面构建器中设置rootview的背景颜色,我会得到错误的bg颜色(与原始值不同)。如果我以编程方式设置视图具有正确的bg颜色。 有什么我没有看到?界面构建器和屏幕截图(模拟器和设备)之间的操作系统颜色差异

我使用XIB没有故事板...

EDIT(场景和问题的更详细的说明):

我在InterfaceBuilder中定义我的页面(视图)和设置RGB(100,100,100)的背景颜色。

enter image description here

在我的AppDelegate我有以下代码:

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.window = window; 

IndexViewController *indexViewController = [[IndexViewController alloc] init]; 

self.viewController = indexViewController; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
return YES; 

如果我再取应用程序,我得到RGB(81,81,81)的背景色的屏幕截图。

IndexViewController什么都不做。在viewDidLoad方法中设置视图控制器根视图的背景颜色时,生成的颜色是正确的。

[self.view setBackgroundColor:[UIColor colorWithHex:@"#646464" alpha:1.0]]; 

我试着自己解决了这个问题几个小时,但我在ios开发方面没有那么经验。希望有人能帮助!

SOLUTION:

  1. 进入系统设置 - >显示 - >颜色,然后选择 “通用RGB”
  2. 在颜色选择器InterfaceBuilder中单击旁边的 齿轮轮下拉式(RGB滑条)并选择“通用RGB”

注意!如果输入rgb值,请不要将焦点放在“十六进制颜色#”输入上。一旦发生这种情况,颜色选择器会将颜色配置文件重置为“sRGB ...”。这似乎是一个错误!?

+1

你能不能给我们使用的是在厦门国际银行什么颜色的想法和编程? – 2015-03-25 12:16:29

+0

它清楚地表明我们没有看到......我们可以用你的任何例子来帮助你解决这个问题,看起来更像是你没有花太多时间在这个问题上自己解决 – 2015-03-25 12:25:04

+1

单击下拉框旁边的轮子并选择通用rgb。 – 2015-03-25 14:52:13

回答

0

看起来像你的功能: [UIColor colorWithHex:@“#646464”alpha:1.0] 正在创造这种差异。

尝试使用这样的:

- (UIColor *)colorFromRGBHexString:(NSString *)colorString { 
if(colorString.length == 7) { 
    const char *colorUTF8String = [colorString UTF8String]; 
    int r, g, b; 
    sscanf(colorUTF8String, "#%2x%2x%2x", &r, &g, &b); 
    return [UIColor colorWithRed:(r/255.0) green:(g/255.0) blue:(b/255.0) alpha:1.0]; 
}  
return nil; 
} 
+0

不,这不是问题,因为如果我用这种方法设置颜色,我会得到正确的结果。请参阅上面的解决方案。 – Dan 2015-03-25 15:14:01

+0

您正在使用哪个设备拍摄快照?或使用模拟器? – itsji10dra 2015-03-25 15:18:49

相关问题