Nó thoát tôi tại sao mã này, bên drawRect:
, hoạt động:Tại sao - [UIColor setFill] làm việc mà không đề cập đến một bối cảnh vẽ?
UIBezierPath *buildingFloor = [[UIBezierPath alloc] init];
// draw the shape with addLineToPoint
[[UIColor colorWithRed:1 green:0 blue:0 alpha:1.0] setFill]; // I'm sending setFill to UIColor object?
[buildingFloor fill]; // Fills it with the current fill color
Quan điểm của tôi là, đối tượng UIColor
nhận được một thông điệp setFill
và sau đó bằng cách nào đó chồng hiểu rằng UIColor
này ngay bây giờ sẽ là màu fill, isn' điều này thật lạ và sai? Ít nhất tôi sẽ mong đợi thiết lập điền bằng cách gọi một số phương pháp CGContext
... Nhưng bây giờ thay vì đại diện cho một màu, UIColor
tiếp tục và làm một cái gì đó để thay đổi bối cảnh của bản vẽ của tôi.
Ai đó có thể giải thích những gì đang diễn ra đằng sau hậu trường, bởi vì tôi hoàn toàn bị mất ở đây?
tôi đã kiểm tra các tài liệu tham khảo trước khi gửi bài:
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIColor_Class/Reference/Reference.html http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBezierPath_class/Reference/Reference.html
Cảm ơn @ Matt bó, đặc biệt đối với các liên kết, nó sẽ vô cùng hữu ích cho tôi :) –
cuốn sách của bạn là thực sự hữu ích. Cuối cùng, ai đó đã phá vỡ các khái niệm về ngữ cảnh đồ họa và UIKit so với CoreGraphics theo cách có ý nghĩa! Cảm ơn. – d512
Vui vì tôi có thể giúp! Tôi cũng thấy điều tương tự khó hiểu lúc đầu, và đó là lý do tại sao tôi đã nỗ lực rất nhiều để giải thích rõ ràng. – matt