Należy użyć [label sizeToFit]
sizeToFit
na etykiecie potrwają etykietę, aby dostosować tekst.
Drugim rozwiązaniem jest obliczenie szerokości napisu i zmiana układu etykiety na podstawie szerokości łańcuchów.
Na drugim roztworze można obliczyć wielkość napisu jako
CGSize strSize = CGSizeZero;
CGSize minSize = CGSizeZero;
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
NSAttributedString *attributedText = [[[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: label.font}] autorelease];
CGRect rect = [attributedText boundingRectWithSize:constraintSize
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
strSize = rect.size;
}
else
{
strSize = [text sizeWithFont:label.font constrainedToSize:constraintSize];
}
użyć [myUILabel sizeToFit]; również możemy obliczyć szerokość za pomocą jak http://stackoverflow.com/questions/1340667/pixelwidth-of-the-text-in-a-uilabel – Venkat
Do czego potrzebujesz szerokość? Czy używasz automatycznego układu? Jeśli korzystasz z automatycznego układu, możesz się go pozbyć, grając z priorytetem dopasowania zawartości, dzięki czemu frame.width zwróci poprawną wartość. –
Możesz przyjrzeć się wewnętrznemu rozmiarowi zawartości etykiety, który ma związek z automatycznym układem i ograniczeniami układu. Po prostu google, może nawet chcesz użyć automatycznego układu, gdy chcesz poznać szerokość etykiety. – borchero