Der Grund, warum Labeltext von detailsText unterscheidet, ich stelle mir vor, weil es ein sehr ähnlich UIAlertView aus dem Titel/Beschreibung Perspektive zu sein, ist gemeint.
Die Unterschiede zwischen den beiden Markierungen sind wegen ihres Zwecks ganz verschieden, zum Beispiel:
- Titel haben größere Schriftarten, fett oft mal im Vergleich zum Detailtext.
- Titel sollen von einem beliebten Wörterbuch Seite kurz und klar, genommen werden (Beschreibung spricht für sich):
Titel: Ein beschreibender Name; ein Epitheton.
Ich würde empfehlen, keinen mehrzeiligen Titel zu haben, ihn kurz zu halten und den Beschreibungstext zu verwenden.
Der Grund, warum mehrzeiligen Titel nicht funktionieren, weil die layoutSubviews Implementierung wird die Größe nicht berechnet wird. wenn Sie inspizieren MBProgressHud.m, innerhalb 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;
}
Notiere die -[NSString sizeWithFont: constrainedToSize: lineBreakMode:]
Aufruf für den Beschreibungstext; Diese Methode berechnet die Größe, die für die Anzeige des Textes erforderlich ist - mit so vielen Zeilen wie nötig, während -[NSString sizeWithFont:]
die Größe berechnet, die für die Anzeige des Textes erforderlich ist, jedoch nur bis zur Anzeige einer Zeile.
würde ich abraten einen mehrzeiligen Titel hat, und stattdessen einen kürzeren Titel bietet, mit einiger Beschreibung Text, um ihn zu begleiten.
Wenn Sie einfach müssen die mehrzeiligen Titel (alle Änderungen innerhalb MBProgressHud.m):
- (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];
...
ersetzen:
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];
mit:
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];
Hoffnung nicht zu spät ist, zu helfen.
Versuchen Sie mit '[NSString stringWithFormat: @" Daten werden geladen. \ N Bitte warten. \ N 1-2 Minuten "]'. Nicht sicher, ob es in MBProgressHUD behandelt wird. – iDev
@ ACB.Ich habe es versucht. Immer noch in derselben Linie. – RookieAppler
Dann müssen Sie möglicherweise die Implementierung von MBProgressHUD ändern. Überprüfen Sie, ob hierfür Optionen verfügbar sind. – iDev