Tôi có một tùy chỉnh UIView
được vẽ bằng phương pháp -[drawRect:]
của nó.Chống răng cưa lạ trong chế độ xem tùy chỉnh
Vấn đề là hành vi chống răng cưa rất lạ khi đường kẻ màu đen hoặc đường ngang được vẽ rất mờ.
Nếu tôi tắt tính năng chống răng cưa với CGContextSetAllowsAntialiasing
, mọi thứ được vẽ như mong đợi.
Anti-Aliasing:
alt text http://dustlab.com/stuff/antialias.png
Không Anti-Aliasing (trông giống như kết quả mong đợi với AA):
alt text http://dustlab.com/stuff/no_antialias.png
Chiều rộng dòng chính là 1, và tất cả các tọa độ là những giá trị không thể thiếu .
Điều tương tự cũng xảy ra nếu tôi vẽ hình chữ nhật bằng cách sử dụng CGContextStrokeRect
, nhưng không phải nếu tôi vẽ chính xác cùng một CGRect
với UIRectStroke
.
Thêm vào đó, Apple cung cấp một số mẹo và mã mẫu đẹp trong phần "Vẽ Pixel-Chính xác" của Hướng dẫn vẽ Cocoa: http://developer.apple.com/mac/library/documentation/Cocoa/ Conceptual/CocoaDrawingGuide/Transforms/Transforms.html # // apple_ref/doc/uid/TP40003290-CH204-BCICIJAJ –
đây là cách đơn giản để tránh mà không có bất kỳ mã nào tại http://www.techpaa.com/2012/06/avoiding -view-edge-antialiasing.html – ShivaPrasad
@jeeva 'UIViewEdgeAntialiasing' chỉ dành cho các cạnh của các lớp. Câu hỏi đặt ra là các dòng được vẽ trong Quartz. Bản vẽ thạch anh không bị ảnh hưởng bởi 'UIViewEdgeAntialiasing'. –