2011-09-09 2 views
9

Tôi cần sử dụng các màu tùy chỉnh trong ứng dụng của mình. Tôi đã tìm thấy một số màu HTML đẹp và chuyển đổi chúng thành các giá trị RGB sau đó áp dụng chúng với:Mục tiêu-c HTML-> Màu RGB không chính xác trong UIColor

[UIColor colorWithRed:235 green:242 blue:212 alpha:1] 

Vấn đề là màu kết quả trong ứng dụng của tôi không chính xác. Đôi khi nó chỉ là màu trắng và lần khác nó chỉ là cách tắt. Màu đỏ có thể có màu vàng, v.v.

Có ai biết điều này trước đây không? Tôi có chuyển đổi màu không chính xác hay gì đó không.

Trả lời

28

Đơn giản chỉ cần chia tất cả các bạn giá trị màu bằng 255:

[UIColor colorWithRed:235/255.0f green:242/255.0f blue:212/255.0f alpha:1] 
+4

Tôi chỉ muốn thêm rằng hậu tố .0f là rất quan trọng. Tôi đã sử dụng mã của bạn mà không có nó lúc đầu và màu sắc tôi nhận được là rất khác nhau. Đơn giản chỉ cần sử dụng 57/255 (giả sử), không cắt nó. Vì vậy, để mọi người khác sử dụng câu trả lời này, đừng quên thêm .0f, không giống như tôi :)) – BBog

5

Phạm vi giá trị hợp lệ cho các tham số cho +colorWithRed:green:blue:alpha:is 0 to 1. Giả sử giá trị RGB của bạn có khoảng từ 0 đến 255, ví dụ bạn sẽ là:

[UIColor colorWithRed:0.92f green:0.95f blue:0.83f alpha:1.f]; 
+0

lớn thứ, cảm ơn. Làm cách nào để chuyển đổi các số tôi có sang định dạng chính xác? – conor

+2

Chia chúng theo 255. –

0

Đơn giản chỉ cần sử dụng phương pháp này trong .m

-(float)getColorValue:(float)colorVal 
{ 
    return colorVal/255; 
} 

nét khai báo tại .h

-(float)getColorValue:(float)colorVal 

Ví dụ:

[UIColor colorWithRed:[self getColorValue:227] green:[self getColorValue:227] blue:[self getColorValue:227] alpha:1.0]; 
+0

Thật là một chặng đường dài để làm một điều đơn giản – Mutawe