मेरे पास है एक विधि है कि मुझे एक UITextView स्ट्रिंग की लंबाई को देखते हुए के लिए एकदम सही आकार (इसी सही फ़ॉन्ट आकार के साथ) देता है:मुझे बहिष्कृत आकार के साथ क्या करना चाहिए विथफॉन्ट: विधि?
- (NSInteger) heightOfLabel:(NSString*) string {
CGSize maximumLabelSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width - 40, FLT_MAX);
CGSize expectedLabelSize = [[NSString stringTrimmedForLeadingAndTrailingWhiteSpacesFromString:string]
sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:maximumLabelSize
lineBreakMode:NSLineBreakByWordWrapping];
return expectedLabelSize.height + 5;
}
वास्तव में, यह अभी भी मुझे एक सही फिट देता है, यहां तक कि iOS7 में । हालांकि अब यह एक चेतावनी विधि के साथ आता है जो कहता है कि मुझे 'sizeWithFont: contrainedToSize: lineBreakMode' का उपयोग नहीं करना चाहिए।
अब इसे कहते हैं मैं -boundingRectWithSize का उपयोग करना चाहिए: विकल्प: विशेषताएं: संदर्भ:
इस विधि iOS7 के लिए नया नहीं है और इसलिए मैं समझ है कि यह ढेर अतिप्रवाह पर यह पूछने के लिए, बजाय जा रहा ठीक है आधिकारिक सेब डेवलपर्स मंच के लिए।
मैं तीन प्रश्न हैं:
1) क्योंकि यह अनुचित है, इसका मतलब यह है मैं निश्चित रूप से यह, के बावजूद यह अभी भी काम कर रहे बदलना चाहिए?
2) मैंने कई अलग-अलग बाउंडिंग RectWithSize की कोशिश की है: विधियों, विभिन्न चर के साथ, लेकिन यह कभी भी सही नहीं होता है, यह हमेशा थोड़ा सा लगता है (जैसा कि कई स्टैक ओवरफ्लो प्रश्न बताते हैं) - क्या इस के साथ कोई सही प्रतिस्थापन नहीं है विधि जो मेरी पिछली विधि के समान ही कम परेशानी के साथ समान है?
3) इस विधि को क्यों हटाएं? क्या यह इस अन्य विधि के साथ ओवरलैप की वजह से है?
देखें इस [कड़ी] (http://www.cnblogs.com/lisa090818/p/3445161.html)। – yazh
wtf वह लिंक है? – Rambatino