Domanda

Sto cercando di mostrare un lungo pezzo di testo all'interno di un Uilabel in una riga. L'Uilabel è una sottoview di UiscrollView, quindi posso scorrere e vedere l'intero Uilabel.

Il mio problema è che il metodo SizeTofit funziona solo in particolare.

textLabel.attributedText = attributedString;
textLabel.numberOfLines = 1;
[textLabel sizeToFit];
textScrollView.contentSize = CGSizeMake(textLabel.frame.size.width, textLabel.frame.size.height);
.

La dimensione del contenuto UISCROLVELVE è abbastanza grande da mostrare l'intero uilable, ma per una linea come:

.

Quindi cercherò di condividere alcuni di loro qui ogni tanto. "

L'Uilabel mostra:

.

Quindi proverò a condividere som ...

Cosa sto facendo male?

È stato utile?

Soluzione

risulta che il codice va bene - ma è stato controllato l'autolayout dell'uso. Deselettore - tutto funziona semplicemente ...

Altri suggerimenti

If you want to achieve this with auto layout turned on it's simple. Just make sure you add numberOfLines

textLabel.adjustsFontSizeToFitWidth = YES;
textLabel.numberOfLines = 0;

Surprisingly, if you did not put a constraint on the label's width, this would work:

[textLabel.superview layoutSubviews];

I learned this by trial and error.

try

textLabel.adjustsFontSizeToFitWidth  = YES;
textLabel.minimumFontScale      =  0.5;  

Since you have restricted your Label to show only one line of Text and truncate the rest , it is behaving the same

textLabel.attributedText = attributedString;
textLabel.numberOfLines = 0;
[textLabel sizeToFit];
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textScrollView.contentSize = CGSizeMake(textLabel.frame.size.width, textLabel.frame.size.height);

Hope it will help you

The most common reason for sizeToFit not working properly is the UILabel not having any autolayout constraints, for instance if you're implicitly relying on the view position remaining fixed relative to the top left. Adding any constraint at all (leading, top, centerY, anything) will fix it, presumably because it will result in layoutSubviews being called at some point, as suggested in Maxthon Chan's answer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top