लेबलटेक्स्ट विवरण से अलग क्यों है कारण, मैं कल्पना करता हूं क्योंकि यह शीर्षक/विवरण परिप्रेक्ष्य से UIAlertView के समान ही है।
दो लेबल के बीच मतभेद, क्योंकि उनके उद्देश्य की काफी अलग है, उदाहरण के लिए:
- टाइटल बड़ा फोंट, बार बार बार विस्तार पाठ की तुलना में बोल्ड है।
शीर्षक::
टाइटल छोटी और स्पष्ट है, (वर्णन खुद कहता है) एक लोकप्रिय शब्दकोश साइट से लिया जा करने के लिए होती हैं एक वर्णनात्मक नाम; एक उपहास
मैं अनुशंसा करता हूं कि बहु-पंक्ति शीर्षक न रखें, इसे छोटा रखें, और वर्णन टेक्स्ट का उपयोग करें।
मल्टी-लाइन शीर्षक काम नहीं करते हैं कारण लेआउटस्यूव्यूव कार्यान्वयन के कारण है, आकार की गणना नहीं की जा रही है। आप MBProgressHud.m, layoutSubviews भीतर,
CGFloat remainingHeight = bounds.size.height - totalSize.height - kPadding - 4 * margin;
CGSize maxSize = CGSizeMake(maxWidth, remainingHeight);
CGSize detailsLabelSize = [detailsLabel.text sizeWithFont:detailsLabel.font
constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];
totalSize.width = MAX(totalSize.width, detailsLabelSize.width);
totalSize.height += detailsLabelSize.height;
if (detailsLabelSize.height > 0.f && (indicatorF.size.height > 0.f || labelSize.height > 0.f)) {
totalSize.height += kPadding;
}
नोट विवरण पाठ के लिए -[NSString sizeWithFont: constrainedToSize: lineBreakMode:]
कॉल का निरीक्षण करता है; यह विधि पाठ को प्रदर्शित करने के लिए आवश्यक आकार की गणना करती है - आवश्यकतानुसार कई पंक्तियों का उपयोग करके, जबकि -[NSString sizeWithFont:]
टेक्स्ट प्रदर्शित करने के लिए आवश्यक आकार की गणना करता है, लेकिन केवल एक पंक्ति प्रदर्शित करने के लिए।
मैं एक बहु-पंक्ति शीर्षक रखने के खिलाफ सलाह दूंगा, और इसके बजाय कुछ विवरण टेक्स्ट के साथ एक छोटा शीर्षक प्रदान करूंगा।
यदि आपके पास बस बहु-पंक्ति शीर्षक होना चाहिए (MBProgressHud के भीतर सभी परिवर्तन।एम):
- (void)setupLabels {
label = [[UILabel alloc] initWithFrame:self.bounds];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = MBLabelAlignmentCenter;
label.opaque = NO;
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.font = self.labelFont;
label.text = self.labelText;
>>> label.numberOfLines = 0;
[self addSubview:label];
...
बदलें:
CGFloat remainingHeight = bounds.size.height - totalSize.height - kPadding - 4 * margin;
CGSize maxSize = CGSizeMake(maxWidth, remainingHeight);
CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];
totalSize.width = MAX(totalSize.width, labelSize.width);
totalSize.height += labelSize.height;
if (labelSize.height > 0.f && indicatorF.size.height > 0.f) {
totalSize.height += kPadding;
}
remainingHeight = bounds.size.height - totalSize.height - kPadding - 4 * margin;
CGSize detailsLabelSize = [detailsLabel.text sizeWithFont:detailsLabel.font
constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];
आशा इस मदद करने के लिए देर नहीं हुई है:
CGSize labelSize = [label.text sizeWithFont:label.font];
labelSize.width = MIN(labelSize.width, maxWidth);
totalSize.width = MAX(totalSize.width, labelSize.width);
totalSize.height += labelSize.height;
if (labelSize.height > 0.f && indicatorF.size.height > 0.f) {
totalSize.height += kPadding;
}
CGFloat remainingHeight = bounds.size.height - totalSize.height - kPadding - 4 * margin;
CGSize maxSize = CGSizeMake(maxWidth, remainingHeight);
CGSize detailsLabelSize = [detailsLabel.text sizeWithFont:detailsLabel.font
constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];
साथ
।
'[NSString stringWithFormat: @" लोड हो रहा डेटा के साथ प्रयास करें। \ N कृपया प्रतीक्षा करें। \ N 1-2 मिनट "]'। सुनिश्चित नहीं है कि यह MBProgressHUD में संभाला गया है या नहीं। – iDev
@ एसीबी.मैंने कोशिश की। अभी भी एक ही पंक्ति में। – RookieAppler
फिर आपको MBProgressHUD कार्यान्वयन को संशोधित करना पड़ सकता है। जांचें कि इसके लिए कोई विकल्प उपलब्ध है या नहीं। – iDev