2012-04-06 124 views
32

概述iOS的 - 在Xcode的模擬器顏色上設備

我的iPhone應用程序在模擬器(IMAC)的背景顏色看起來與設備(iPhone 3GS)上的顏色不同的顏色不同。

EDIT(以下部分已被添加)

以下是所有不同:

  1. 故事板的顏色(XIB文件)
  2. 模擬器顏色
  3. 設備色彩

我想我應該去看看它是怎麼樣的ks在設備上。

問題

  1. 這是一個常見的問題其他開發人員面臨的是有沒有辦法匹配的顏色(系統程序)?
  2. 在不同版本的iPhone(3gs/4/4s)或所有顏色上,顏色看起來會不同?
  3. 我錯過了什麼,有沒有任何特定的顏色配置文件,我應該使用?
  4. 有沒有像RGB值按一定比例變化的經驗法則?
  5. 在iPhone 4和4S中,顏色是否與模擬器匹配? (我沒有iPhone4和4S,所以我不知道。)
+2

屏幕截圖在這裏肯定會有所幫助。我們在談論多少不同? – jtbandes 2012-04-06 05:49:41

+1

該設備使用大猩猩玻璃......並且您的顯示器很可能不會。這將會微妙地影響人眼由於光波失真而感知顏色的方式。隨時關注設備上的外觀。除非其中一個設備無法正常工作,否則設備之間看起來不太可能會有所不同。 – borrrden 2012-04-06 05:51:22

+0

謝謝borrden,是的,我喜歡去與設備顏色,但我不知道如何匹配顏色 – user1046037 2012-04-06 05:57:29

回答

19

幸得@jtbandes的建議發送截圖而導致的解決方案

我只是回答了這個問題完整性。

步驟我跟着:

  1. 以圖像的截圖在故事板
  2. 以圖像的屏幕截圖裝置(使用郵件/照片流回到你的MAC)
  3. 使用顏色選擇器(mac OS調色板的一部分)在屏幕截圖上選取相同的點
  4. 記下步驟3中選擇的點的RGB值(可在mac OS調色板上獲得)
  5. 比較兩個RGB值並查看差異
  6. 添加RGB偏移以匹配顏色。

我RGB偏移量(不盲從)

根據我的經驗,我增加了以下的RGB值來獲得我想要的顏色,它僅僅是粗略的,對我的工作:

  • 紅+12
  • 綠色+19
  • 藍+16

不同的角度(最好是保持它的水平)

保持在不同角度的手機也給了不同的色調,保持它的水平確實給

+2

你所做的實際上是所謂的色彩管理:http://en.wikipedia.org/wiki/Color_management – MrTJ 2012-04-06 08:33:48

+0

謝謝@MrTJ,我的理解是,iPhone不使用顏色配置文件,因此我遵循上述步驟,如果有是一個更好的方法,我會很高興知道。謝謝 – user1046037 2012-04-06 13:21:07

+0

偉大的職位。我同時感謝你的失望,並且失望他們所需要的。肉眼看,雖然優惠是完美的。最後,我的default.png正常轉換到應用程序的菜單背景。 – Ternary 2014-11-18 21:28:29

1

iPhone所使用的色彩空間的管理,所以如果你想要的顏色一個更「科學」的解決方案,您可以創建自己的色彩空間,例如CGColorSpaceCreateCalibratedRGB。儘管它在Core圖形級別上。

+0

感謝@MrTJ赦免我的無知,我正在使用圖像(紋理),它是否也與圖像一起工作? – user1046037 2012-04-06 15:30:01

+1

是的,您可以爲任何渲染上下文(包括屏幕)設置色彩空間。然後,您的色彩空間將應用於您繪製到該渲染上下文的任何內容。請參閱https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_color/dq_color.html(特別是最後一章)和http://developer.apple.com/library/mac/ #qa/qa1396/_index.html – MrTJ 2012-04-10 08:45:16

+0

儘管API確實存在,但實際上並沒有任何效果。使用CGColorSpaceCreateCalibratedRGB()創建'CGColor',然後將其繪製到DeviceRGB上下文中會得到完全相同的顏色值。 (這可能是OS X的暫緩,或者爲了將來打樣而加入) – 2015-10-05 04:11:11

8

當前(截至2014年3月17日)CGColorSpace參考包括以下文本,它表示sRGB是iOS的本機設備色彩空間。

顏色空間和iOS:iOS不支持ColorSync,因此應在本機設備顏色空間中提供所有資源:sRGB。

+1

請提供引用引用的鏈接以使您的答案更好。 – Szymon 2014-03-17 23:50:23

+0

@Szymon https://developer.apple.com/library/ios/Documentation/GraphicsImaging/Reference/CGColorSpace/index.html – GuramK 2014-09-27 19:45:14

0

我有一個類似的問題,特別是在我的項目中的綠色。我的問題結果是,我有一些資產是在Illustrator中創建的,顏色設置爲CMYK而不是RGB。我不確定這是否是你的問題,但對未來絆倒這個問題的人可能會有所幫助。我將插圖畫家「文檔顏色模式」更改爲RGB,一切正常。

1

更好的方法來轉換RGB值的sRGB使用「數字色彩照度計」工具在Mac,只需選中「顯示中的sRGB」

Digital Color Meter

然後使用sRGB值在你的代碼的RGB native values

enter image description here

而不是使用這個工具,你可以找到通用的RGB色彩,並直接將其設置到了Xcode作爲RGB值

5

正如其他人指出的,這是一個問題色空間

兩項任務需要執行:

  1. 使用sRGB色彩空間獲取源顏色。
  2. 使用sRGB顏色空間在Interface Builder中設置顏色。

任務1

您可以使用蘋果的Digital Color Meter應用品嚐所需的顏色,使用Display in sRGB選項,但輸出非常有限。

另一種選擇是使用像SipIt這樣的應用程序(在App Store上免費提供,最後一次檢查)。請確保您在正確的色彩空間通過執行採樣:

Preferences -> General -> Color Profiles -> sRGB 

您還可以設置輸出格式(例如十六進制字符串)。

enter image description here 任務2

在Interface Builder中,打開顏色窗口中,選擇第二個窗格中,選擇 「RGB滑塊」。然後點擊齒輪圖標選擇sRGB顏色配置文件。

enter image description here

完成後,粘貼到Hex Color #

你做你的顏色值!你的顏色現在應該匹配。

我不以任何方式隸屬於SipIt。但是我已經使用了幾年,而且非常方便。我會推薦給任何設計師。

+0

也使用Sip,在Sip和Xcode之間匹配顏色空間有助於獲得相同顏色的十六進制字段Xcode顏色選擇器。爲+1 :)。但Xcode和Sketch中的顏色仍然不匹配:( – 2017-09-07 14:41:50

0

您可以使用此webPage爲Xcode中的不同顏色的甲板。例如,通用和設備顏色有點不同。

0

它是關於色空間

確保從sRGB色彩空間中選取顏色,並通過從下拉菜單中選擇sRGB IEC61966-2.1在Interface Builder上覆制其RGBA值。

如果您在一個顏色空間中選取一種顏色並在不同的顏色空間中生成顏色,它將看起來不同,儘管已經複製了相同的RGBA值。

另外,請記住,當您通過代碼生成顏色時,使用UIColor(red:green:blue:alpha:),默認情況下它會在sRGB色彩空間中生成。這就是爲什麼使用這個方法非常方便(而不是Adobe RGBP3或其他)。此外,sRGB是目前業界使用最多的標準。

有趣的事實:我上面提到的UIColor構造函數在自Xcode8以來在sRGB空間創建了顏色。之前,該功能用於在Generic RGB空間內創建它們。這就是爲什麼它也可能導致混亂。

下面是這個專題的延伸資源:https://medium.com/@volbap/working-efficiently-with-colors-in-xcode-bc4c58b16f9a

1

還有一個與你的應用程序的圖像文件時,簡單的解決方案。首先,將Xcode中的顏色空間設置爲sRGB IEC61966-2.1並應用您的顏色。然後,在將任何圖片導入到應用程序之前,使用Mac上的ColorSync Utility將圖像與sRGB IEC61966-2.1配置文件相匹配。 完美適合我,我的背景現在完全符合我導入的圖像。希望這可以幫助某人。

相關問題