2010-09-29 14 views
6

मैं सभी जानकारी के लिए नेट/उदाहरण के लिए नेट देख रहा हूं ...आईफोन: UITextView में लाइन स्पेसिंग बदलें?

मैं एक यूआईटीएक्स्टव्यू ऑब्जेक्ट के अंदर टेक्स्ट की लाइन दूरी को डबल स्पेस में बदलने की कोशिश कर रहा हूं। मैंने सोचा कि आप इसे कोर टेक्स्ट के माध्यम से कर सकते हैं, लेकिन समाधान नहीं मिला है!

कोई भी उदाहरण कोड या जानकारी की सराहना की जाएगी! धन्यवाद!

उत्तर

5

आपको नेट पर सभी को देखने की ज़रूरत नहीं है। UITextView के लिए प्रलेखन पर एक नज़र यह निर्धारित करने के लिए पर्याप्त है कि लाइन रिक्ति को बदलना उस नियंत्रण द्वारा समर्थित नहीं है।

कोर टेक्स्ट के साथ आपके द्वारा खींचे गए पाठ के लेआउट पर आपका पूरा नियंत्रण होता है। लेकिन यह UITextView को स्क्रैच से नियंत्रण के समान लिखने के लिए बहुत काम करेगा।

+0

बिल्कुल UITextView नहीं है किसी भी लाइन ऊंचाई परिवर्तन का समर्थन करें। –

+0

मैं multilines के बीच अंतर कैसे बदल सकता हूं? धन्यवाद – SAKrisT

+0

@ मार्क सुमन का जवाब उपयोगी है, आईओएस 6 पोस्ट करें। –

4

यह प्रश्न आईओएस 6 से पहले पूछा गया था। मैं उन लोगों के लिए एक अद्यतन उत्तर पोस्ट करना चाहता हूं जो ऐसा करने का तरीका चाहते हैं।

यह अब आईओएस 6 के साथ और बाद में एनएसएट्रिब्यूटेड स्ट्रिंग का उपयोग कर किया जा सकता है। UITextView अब एक गुणित स्ट्रिंग को इसके गुणों में से एक के रूप में स्वीकार करता है। आप लाइन स्पेसिंग समेत जिम्मेदार तारों के साथ सभी प्रकार के टेक्स्ट मैनिपुलेशन कर सकते हैं। आप स्ट्रिंग के अनुच्छेद शैली विशेषता के लिए न्यूनतम और अधिकतम पंक्ति ऊंचाई सेट कर सकते हैं।

अधिक जानकारी के लिए NSAttributedString Class Reference देखें।

NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; 
paragraph.minimumLineHeight = 21.0f; 
paragraph.maximumLineHeight = 21.0f; 
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"Test text line 1\nTest text line 2\nTest text line 3" attributes:@{NSParagraphStyleAttributeName: paragraph}]; 
textView.attributedText = attributedString; 
1

आप NSLayoutManagerDelegate उपयोग कर सकते हैं:

यहाँ आप क्या कर सकते हैं का एक नमूना है। अपने ViewController या UIView वर्ग (आदि) के लिए है कि प्रतिनिधि जोड़े और फिर आप अपने UITextView बनाते समय ...

yourTextView.layoutManager.delegate = self 

इस प्रतिनिधि विधि जोड़ें: iOS 4.3 के रूप में,

func layoutManager(layoutManager: NSLayoutManager, lineSpacingAfterGlyphAtIndex glyphIndex: Int, withProposedLineFragmentRect rect: CGRect) -> CGFloat { 
    return 5 //Whatever you'd like... 
}