2012-01-09 22 views
8

Tôi đang đặt tintColor của số UIBarButtonItem. Điều này làm việc miễn là màu sắc là một màu sắc tươi sáng, ngay sau khi tôi cố gắng đặt nó thành darkGrayColor không có gì xảy ra, trên thực tế nó thay đổi màu trắng! Nhưng nếu tôi đổi màu thành redColor thì nó hoạt động ... Cái gì đang diễn ra ở đây?UIBarButtonItem setTintColor không hoạt động với màu tối

UIBarButtonItem *penButton = [_toolBar.items objectAtIndex:3]; 
UIBarButtonItem *crossButton = [_toolBar.items objectAtIndex:4]; 

//This actually sets the tint to white not gray, which is odd? 
[penButton setTintColor:[UIColor darkGrayColor]]; 
[crossButton setTintColor:[UIColor redColor]]; //Red is fine, as is green etc 
+1

Bạn đã thử cung cấp màu tùy chỉnh (giá trị RGB) và đã kiểm tra kết quả chưa? – Till

+0

Ý tưởng hay nhưng dường như không hoạt động hoặc, tôi sẽ cập nhật câu hỏi với kết quả – Chris

+1

Đặt màu tint không hoạt động nhưng thiết lập một alpha mới đã làm !! – Chris

Trả lời

1

Sự khác biệt giữa [UIColor redColor][UIColor darkGrayColor] là cựu được thiết lập sử dụng các giá trị RGB và sau này với một màu xám, và UIBarButtonItem được bằng cách nào đó bỏ qua các màu xám. Bạn có thể kiểm tra lý thuyết này bằng cách so sánh:

[penButton setTintColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0]]; 

[penButton setTintColor:[UIColor colorWithWhite:0.5 alpha:1.0]]; 

Nếu trước đây là như mong đợi nhưng sau này không đúng, thì vấn đề thực sự là với thang độ xám. Nếu không, tôi không biết nguyên nhân gây ra hành vi này.

+0

Tôi đã thử điều đó và nó vẫn xuất hiện như màu trắng, thiết lập alpha đến 0,2 có hiệu ứng tôi muốn nhưng rõ ràng là để lại câu hỏi ban đầu chưa được trả lời! – Chris

+0

@Chris Thú vị. Bạn có nghĩa là bạn đặt alpha của 'UIColor' hoặc của' UIBarButtonItem'? – PengOne

+0

Tôi có nghĩa là alpha của UIColor theo ví dụ của bạn! – Chris

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