2011-08-24 40 views

Trả lời

28

Điều này là do CGFloat giá trị dao động từ 0.0 to 1.0 không phải từ 0 to 255, và các giá trị trên 1.0 được hiểu là 1.0.

Dưới đây là tài liệu: UIColor

16

Chỉ cần làm điều này:

navigationController.navigationBar.tintColor = [UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1]; 
+0

Tôi đã làm điều này và bây giờ nó hiển thị màu đen thay vì màu đỏ sẫm – aryaxt

+0

Có vẻ như bạn đang thấy chỉ có màu trắng hoặc chỉ đen cho tất cả các tùy chọn ... bạn có chắc là bạn không có màn hình B & W không? :) đảm bảo rằng bạn không ghi đè màu màu này ở một nơi khác trong ứng dụng của bạn. – TommyG

+0

Tôi không nghĩ vậy. bởi vì khi tôi sử dụng [UIColor redColor], hoặc bất kỳ màu nào khác được xác định, nó hoạt động tốt – aryaxt

6

Bạn phải chia mỗi giá trị cho 255. Hãy thử:

[UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1] 
+5

các giá trị đó phải là phao và không phải là số nguyên, nếu không kết quả sẽ là một số nguyên. –

+1

@ JoãoPortela: Tôi đã chỉnh sửa câu trả lời để các giá trị vẫn giữ nguyên. –

3

Tôi thấy rằng nếu bạn đến từ web hoặc từ một cái gì đó như Photoshop, nó là dễ dàng hơn để làm việc với các màu hệ thập lục phân. Bạn có thể sử dụng macro này cho rằng:

//RGB color macro 
#define UIColorFromRGB(rgbValue) [UIColor \ 
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ 
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ 
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 

Và sử dụng nó như thế này:

self.navigationBar.tintColor = UIColorFromRGB(0xd8dadf); 
0

Ah, đây là buồn cười. Câu trả lời thực sự là .tintColor đặt màu cho các mục điều hướng của bộ điều hướng (giống như nút "Xong").

+0

Đó là cách duy nhất trong iOS gần đây, không phải khi câu hỏi được hỏi. – zeroimpl

Các vấn đề liên quan