2013-01-10 16 views
5

संभव डुप्लिकेट: विधियों, और स्ट्रिंग की अधिकतम लंबाई है कि है कि आकार में फिट करने के लिए छोटा किया जा करना चाहते हैं:
Measuring the pixel width of a string in Objective Cएक आकार फिट करने के लिए एक एनएसएसटींग छंटनी?

मैं [स्ट्रिंग drawInRect] का उपयोग करें। यह उतना आसान नहीं है जितना कि प्रति पंक्ति कितने अक्षर हैं, क्योंकि प्रत्येक अक्षर एक अलग चौड़ाई है। कारण मैं यह खोजना चाहता हूं कि स्ट्रिंग अब दिखाई नहीं दे रही है इसलिए मैं स्ट्रिंग के अंत में elipses जोड़ सकता हूं।

+1

एक डुप्लिकेट के रूप में चिह्नित प्रश्न बताता है कि कैसे एनएसएसटींग को मापना है, इसे कैसे छीनना नहीं है। – picciano

+1

यहां ऐसा करने का एक तरीका है: '- (एनएसएसटींग *) स्ट्रिंगबिट्रंकिंगटॉइडथ: (सीजीएफएलएटी) चौड़ाई विशेषताएं: (NSDictionary *) textFontAttributes { CGSize आकार = [स्वयं आकार WithAttributes: textFontAttributes]; अगर (size.width <= width) { स्वयं लौटें; } (int i = 2; i picciano

उत्तर

0

आप इस स्ट्रिंग का उपयोग कहां करना चाहते हैं? यदि यह UILabel में है, तो आप NSLineBreakMode = NSLineBreakByTruncatingTail का उपयोग कर सकते हैं।

2

drawInRect:withAttributes: के NSString Additions Reference में प्रलेखन को देखें। "स्थिरांक" के अंतर्गत आप करता है कि क्या आप स्वचालित रूप से चाहते हैं के लिए एक विकल्प मिल जाएगा:

NSStringDrawingTruncatesLastVisibleLine ट्रंकेटस और अंतिम दृश्यमान लाइन के लिए अंडाकार चरित्र कहते हैं अगर पाठ सीमा निर्दिष्ट में फिट नहीं करता है।

1

यदि आप @ मुंडी द्वारा दिए गए समाधान अपर्याप्त हैं या आपको यह जानने की आवश्यकता है कि टेक्स्ट कितना फिट है।

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size 
एक पाश पाठ का आकार कम हो रही है जब तक यह फिट बैठता है में

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