2011-11-10 7 views
6

निम्नलिखित घटना: मेरा पाठ "खोज" है। मैं SmallSystemFontSize के UILabel बनाते हैं और sizeToFit: पर कॉल करता हूं।आईपैबेल का टेक्स्ट आईपैड पर क्यों धुंधला है यदि चौड़ाई भी नहीं है?

परिणाम 39 इकाइयों चौड़ा है और पाठ तरह का धुँधली लग रहा है। यदि मैं चौड़ाई को 40 तक समायोजित करता हूं तो यह सही दिखता है।

मैंने पढ़ा है कि पाठ धुँधली हो जाता है अगर आप उप पिक्सल मारा, जिसका अर्थ है चौड़ाई 39.5 की तरह कुछ हो सकता है, लेकिन ऐसा लगता है तो यह और भी हो गया है।

किसी पुष्टि कर सकते हैं या यहां तक ​​कि समझाने क्या चल रहा है?

उत्तर

4

UIView आइटम उनके केंद्र द्वारा स्थित हैं जो कि अजीब आकार के लिए आधे पिक्सेल पर है, 1 9 .5 की चौड़ाई के लिए 19.5 .. यह संरेखण पिक्सेल औसत का कारण बनता है जो अस्पष्टता का कारण बनता है।

एक तरीका यह भी चौड़ाई बनाना है।

@property(nonatomic) CGPoint center 

उदाहरण के लिए, (10, 10, 39, 19) में label; की एक इच्छित स्थान के लिए एक इस्तेमाल कर सकते हैं:

एक और एक और भी बिंदु उपयोग पर केंद्र द्वारा यह जगह करने के लिए है

label.center = CGPointMake(50, 20); 
+0

तुमने मुझे बताया कि मेरे आइटम 39 चौड़ा है और मैं करने के लिए फ्रेम की स्थापना करके यह स्थिति (10, 10, 39, 19) यह अस्पष्ट है, हालांकि यह एक और भी ऊपरी बाएं कोने (10, 10) पर शुरू होता है? अजीब है कि। इसे ठीक करने का सबसे अच्छा/सरल तरीका क्या है? – Krumelur

+0

यह मेरे लिए भी आश्चर्यचकित था, मेरे उत्तर के अतिरिक्त देखें। – zaph

+0

पूरा प्रभाव यूआई ढांचे में एक बग की तरह दिखता है। मुझे इसमें कोई समझ नहीं आ रही है ... – Krumelur

3

मेरे मामले में, UILabel के superview की CGLayer पर shouldRasterize = YES सेट होने अपराधी था। उस रेखा को हटाने से पाठ को अच्छा और कुरकुरा बना दिया गया।

+3

'layer.shouldRasterize = हाँ,' केवल, यह चूक के रूप में 1.0, चीजों को धुंधले दिख कर देगा कि क्या आप एक रेटिना प्रदर्शन या नहीं कर रहे हैं की परवाह किए बिना अगर आप भी 'स्क्रीन के पैमाने के लिए सेट नहीं है rasterizationScale'। आप 'layer.rasterizationScale = [[UIScreen mainScreen] पैमाने] करके इसे ठीक कर सकते हैं;' – matehat

+0

@matehat धन्यवाद! –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^