2015-02-06 7 views
10

आईओएस 7 और बाद में, हम स्ट्रिंग आकार की गणना करने के लिए - (void)drawWithRect:(CGRect)rect options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context का उपयोग कर सकते हैं, लेकिन मैं NSStringDrawingOptions enum पर टिप्पणियों से उलझन में हूं।NSStringDrawingOptions आइटम द्वारा उलझन में

NSStringDrawingUsesLineFragmentOrigin

यह निर्दिष्ट करने का मतलब मूल लाइन टुकड़ा मूल, नहीं बेस लाइन मूल है। लेकिन रेखा खंड मूल और बेसलाइन उत्पत्ति का क्या मतलब है।

बस WWDC 2013 सत्र 220 (उन्नत पाठ लेआउट और पाठ किट के साथ प्रभाव) पृष्ठ 95

लाइन टुकड़ा मूल नीले डॉट मतलब तो पर पीडीएफ, क्या आधारभूत मूल की तरह

?

उत्तर

9

From the official documentation

चर्चा

NSStringDrawingUsesLineFragmentOrigin विकल्पों में निर्दिष्ट है, तो , यह स्ट्रिंग पाठ के रूप में यह फिट बनाने के लिए आवश्यक गिर्द घूमती है। यदि स्ट्रिंग पूरी तरह से आयताकार के अंदर फिट करने के लिए बहुत बड़ी है, तो विधि फ़ॉन्ट को स्केल करती है या स्ट्रिंग को दिए गए सीमाओं के भीतर फिट करने के लिए अक्षर अंतर को समायोजित करती है।

NSStringDrawingUsesLineFragmentOrigin विकल्पों में निर्दिष्ट नहीं है, तो आयत की उत्पत्ति केवल लाइन की आधारभूत है। पाठ आयताकार के ऊपर प्रदर्शित किया जाएगा और इसके अंदर नहीं। उदाहरण के लिए, यदि आप 0,0 से शुरू होने वाला एक आयताकार निर्दिष्ट करते हैं और स्ट्रिंग 'juxtaposed' खींचते हैं, केवल 'j' और 'p' के वंशज देखेंगे। शेष पाठ आयताकार के शीर्ष किनारे पर होगा।

यह विधि विशेषता वाले स्ट्रिंग में निर्दिष्ट विशेषताओं का उपयोग करके लाइन खींचती है। यदि स्ट्रिंग में न्यूलाइन वर्ण मौजूद हैं, तो उन पात्रों को सम्मानित किया जाता है और प्रारंभिक बिंदु के नीचे अगली पंक्ति पर होने के बाद के पाठ का कारण बनता है।

विशेष विचार यह विधि आधारभूत उत्पत्ति का उपयोग डिफ़ॉल्ट रूप से करती है, इसलिए यह स्ट्रिंग को एक पंक्ति के रूप में प्रस्तुत करती है। कई पंक्तियों में स्ट्रिंग को प्रस्तुत करने के लिए, विकल्पों में NSStringDrawingUsesLineFragmentOrigin निर्दिष्ट करें।

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