2012-05-28 31 views
8

Đơn giản, tôi có 2 chế độ xem trong trình tạo giao diện, một chế độ được đặt thành màu 99,99,99 bằng các thanh trượt RGB trong trình tạo giao diện.Sự khác biệt màu sắc giữa drawRect và Trình tạo giao diện?

enter image description here

Quan điểm khác là màu lập trình để đạt được một hình dạng nhất định. Tôi điền nó sử dụng:

//Obviously, this is in drawRect. 
[[UIColor leadColor] set]; 
CGContextEOFillPath(myContext); 

//And this is a category on UIColor 
+ (UIColor *)leadColor { 
    return [UIColor colorWithWhite:99/255.0 alpha:1.0]; 
} 

Kết quả:

enter image description here

Tại sao sự khác biệt này tồn tại ??


EDIT: (hưởng ứng nhiệt liệt drawRect Mã loại bỏ)


EDIT2:

Vì vậy, ở đây tôi đang nói dối với bản thân mình .. "Giao diện người xây dựng cho thấy RGB 99,99 , 99 là 80,80,80. Tôi đặt cược nó bù đắp số bằng 19 " .>> ... Một người đàn ông tuyệt vọng sử dụng Xcode nghĩ những thứ điên như thế này .. Kết quả:

Perfect!!

HOÀN HẢO !!, nhưng lý do tại sao ???? Một lỗi Xcode khác? Tôi tìm thấy như 10 trong số những người đó trong tháng qua ...

+0

Đăng một drawRect hoàn chỉnh như ngày tại hai dòng cùng với 'UIGraphicsGetCurrentContext' không vẽ màu trên khung nhìn. –

+0

Cảm ơn bạn đã dùng thử. Chỉ cần thay thế 'CGContextEOFillPath (myContext);' bằng 'CGContextFillRect'. Đơn giản, chỉ để kiểm tra. – Mazyod

+1

Bạn đã thử '[UIColor colorWithRed: 99/255.0 màu xanh lá cây: 99/255.0 màu xanh dương: 99/255.0 alpha: 1.0]'? – Clafou

Trả lời

22

cuối cùng tôi đã đạt đến giai đoạn tinh chỉnh các ứng dụng này, và phải giải quyết vấn đề này, vì vậy, tôi đã tìm kiếm và dễ dàng tìm thấy các giải pháp:

How do I enter RGB values into Interface Builder?

Minh họa:

enter image description here

+1

Cảm ơn vì điều đó. Tôi sẽ không nghĩ rằng để làm điều đó trong IB – CVertex

+0

Tôi đã có cùng một vấn đề và wven thử nghiệm màu sắc với pháo hoa jejej –

+0

cảm ơn. Đã làm cho tôi. – db42

1

colorWithWhite sử dụng grayscale space và màu 99 trong không gian màu xám không ánh xạ tới màu (99,99,99) trong không gian RGB.

Vì vậy, để có được kết quả tương tự như trong Trình tạo giao diện, bạn cần sử dụng không gian RGB. Thay thế cuộc gọi của bạn để colorWithWhite với điều này:

[UIColor colorWithRed:99/255.0 green:99/255.0 blue:99/255.0 alpha:1.0] 
+0

Những gì bạn đang nói có ý nghĩa hoàn hảo, tuy nhiên, nó không phải là trường hợp. Ảnh chụp màn hình mà tôi đã tải lên có hai màu xám khác nhau, màu được vẽ bởi 'drawRect' +' leadColor' = RGB 99,99,99. (ví dụ: colorWithWhite giống với mã bạn đã cung cấp.Tuy nhiên, tôi đã thử nghiệm nó, không sử dụng). Tuy nhiên, màu sắc được đặt trong IB được hiển thị dưới dạng RGB 80,80,80. – Mazyod

+0

Lạ! Nếu bạn mở tệp .xib trong trình chỉnh sửa văn bản và nhìn xung quanh để biết giá trị màu, bạn thấy gì? – Clafou

+0

\t \t \t \t \t \t \t \t \t \t \t 2 \t \t \t \t \t \t \t \t \t \t \t MC40NjI3NDUwOTggMC40NjI3NDUwOTggMC40NjI3NDUwOTgAA \t \t \t \t \t \t \t \t \t \t .. Không có ý nghĩa với tôi. – Mazyod

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