سؤال

أحاول إظهار جزء طويل من النص داخل Uilabel في سطر واحد. AUILABEL عبارة عن فرعي لشركة UISCrollView حتى أتمكن من التمرير ورؤية Uilabel بأكملها.

مشكلتي هي أن طريقة Sizetofit تعمل بشكل جزئي فقط.

giveacodicetagpre.

حجم محتوى uiscrollview يحصل كبيرة بما يكفي لإظهار كامل usable، ولكن للحصول على خط مثل:

لذلك سأحاول مشاركة بعضهم هنا مرة واحدة في حين. "

يظهر Uilabel:

لذلك سأحاول مشاركة سوم ...

ماذا أفعل الخطأ؟

هل كانت مفيدة؟

المحلول

تبين الرمز هو جيد فقط - ولكن تم فحص استخدام Autolayout. لم يتم تحديده - كل شيء يعمل بشكل رائع فقط ...

نصائح أخرى

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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top