मेरे पास एक कस्टम UIView
है जो इसकी -[drawRect:]
विधि का उपयोग करके खींचा गया है।कस्टम दृश्य में अजीब एंटी-एलाइजिंग
समस्या यह है कि एंटी-एलियासिंग बहुत अजीब काम करता है क्योंकि ब्लैक लाइन क्षैतिज या ऊर्ध्वाधर रेखाएं बहुत धुंधली होती हैं।
यदि मैं CGContextSetAllowsAntialiasing
के साथ एंटी-एलाइजिंग अक्षम करता हूं, तो सब कुछ अपेक्षित के रूप में खींचा जाता है।
विरोधी एलियासिंग:
alt text http://dustlab.com/stuff/antialias.png
कोई विरोधी एलियासिंग (जो ए.ए. साथ अपेक्षित परिणाम की तरह दिखता है):
alt text http://dustlab.com/stuff/no_antialias.png
लाइन चौड़ाई वास्तव में 1 है, और सभी निर्देशांक अभिन्न मान रहे हैं ।
एक ही होता है अगर मैं एक आयत CGContextStrokeRect
का उपयोग कर आकर्षित, लेकिन अगर मैं वास्तव में नहीं बना एक ही CGRect
UIRectStroke
साथ।
इसके अतिरिक्त, ऐप्पल कोको ड्रॉइंग गाइड के "पिक्सल-सटीक ड्राइंग" अनुभाग में कुछ अच्छी टिप्स और नमूना कोड प्रदान करता है: http://developer.apple.com/mac/library/documentation/Cocoa/ संकल्पनात्मक/कोकोडाउविंगगाइड/ट्रांसफॉर्म/ट्रांसफॉर्म.html # // apple_ref/doc/uid/TP40003290-CH204-BCICIJAJ –
यहां किसी भी कोड के बिना किसी भी कोड से बचने का आसान तरीका है http://www.techpaa.com/2012/06/avoiding -view-edge-antialiasing.html – ShivaPrasad
@jeeva 'UIViewEdgeAntialiasing' केवल परतों के किनारों के लिए है। सवाल क्वार्ट्ज में खींची गई रेखाओं के बारे में है। क्वार्ट्ज ड्राइंग 'UIViewEdgeAntialiasing' से प्रभावित नहीं है। –