development

스토리 보드의 색상이 UIColor와 일치하지 않습니다.

big-blog 2020. 12. 13. 10:09
반응형

스토리 보드의 색상이 UIColor와 일치하지 않습니다.


코드에서 색상을 다음과 같이 정의하고 있습니다.

[UIColor colorWithHue:32.0/360.0 saturation:0.88 brightness:0.97 alpha:1]

스토리 보드에서 같은 색을 설정하려고하면 앱을 실행할 때 코드에 정의 된 색과 약간 다른 색입니다. 색상을 입천장으로 드래그 한 다음 다른 색상을 선택하고 입천장을 다시 선택하면 HSB 값이 약간 다릅니다. 인터페이스 빌더에서 다른 (RGB?) 색상으로 스냅되는 것 같습니다.


Xcode 8 이상, iOS 10 이상

나는 최근 에이 문제에 직면했고 게시 된 답변 중 어느 것도 그것을하지 않았습니다. iOS 10 SDK가 출시되면서 UIColor이니셜 라이저는 init(red:green:blue:alpha:)이제 확장 된 sRGB 범위를 사용하므로 스토리 보드에서 색상 값을 구성 할 때 그에 따라 설정해야합니다.

여기에 이미지 설명 입력

Apple 문서 참조 : https://developer.apple.com/reference/uikit/uicolor/1621925-init


나는 같은 문제가 있었다. 코드에서 런타임에 생성 된 UIColors와 일치하지 않는 스토리 보드의 색상의 런타임 RGB 값을보고있었습니다. 구성 할 때 색상을 "일반 RGB"(vs 기본값 인 sRGB)로 설정하여 스토리 보드에서이 문제를 해결할 수있었습니다. 다음은 IB에서 제가 말하는 내용의 스크린 샷입니다.

IB 색상 구성 유틸리티


스위프트 3

제 경우 정확히 정확한 것은 컬러 LCD 였습니다 .

여기에 이미지 설명 입력

내가 도왔 으면 좋겠어 :-D


코드를 사용하면 UIColor init (red : green : blue : alpha :) 메서드는 sRGB 색상 공간이있는 색상 객체를 반환합니다. xib / StoryBoard를 사용하여 코드를 사용하는 것과 동일한 모양을 얻으려면 "sRGB IEC ..."를 선택해야합니다.

예 :

UIColor.init(red: (20.0/255.0), green: (20.0/255.0), blue: (20.0/255.0), alpha: 1.0)

xib / StoryBoard 스크린 샷

사실,이 문제는 iOS 10과 관련이 없습니다. iOS 10 이후 UIColor init는 sRGB 대신 "확장 된 sRGB"를 사용합니다. 그리고 이것은 0.0 이하와 1.0 이상의 rgb 값을 사용할 때만 문제를 일으킬 것입니다.

iOS 10 UIColor 관련


이것은 버그 인 것 같습니다. 코드에서 IB가 설정 한 색상을 로깅 할 때 값은 H : 27.982594 S : 0.899257 B : 0.953253입니다.

Apple에 버그 보고서를 제출했습니다 : rdar : // 19744216

Zaph 덕분에

기록하려면 :

CGFloat cols[4];
[color getHue:&cols[0] saturation:&cols[1] brightness:&cols[2] alpha:&cols[3]];
NSLog(@"H:%f S:%f B:%f %f",cols[0]*360, cols[1], cols[2], cols[3]);

참고 URL : https://stackoverflow.com/questions/28367811/color-in-storyboard-not-matching-uicolor

반응형