Luk*_*kas 113 iphone cocoa-touch objective-c ipad ios
我有这个奇怪的问题,我现在处理它超过8小时..根据情况,我必须UILabels
动态计算大小,
例如
我UIViewController
收到一个事件,我改变UILabels
大小.从大到小.我的尺寸UILabel
变小了,我得到了正确的所需尺寸,但是我的文字UILabel
保持不变,相同的字体大小等等.我需要字体变小,以使整个文字适合UILabel
.所以问题是如何使文本适合我的标签autoshrinking
或类似的东西?
在我的xib
,UILabels
autoshrink
被检查,也行数被设置为0,并且也是我的串具有新行符号(\n),并且我选择linebreakmode到wordwrap
.也许有人和我现在处于同样的境地,可以帮助我吗?我真的很感激.
提前致谢!
编辑: UILabel
最小字体大小设置为10
les*_*ter 152
如果您仍在寻找更好的解决方案,我认为这就是您想要的:
一个布尔值,指示是否应缩小字体大小以使标题字符串适合标签的边界矩形.(仅当numberOfLines属性设置为1时,此属性才有效.)
@property(nonatomic) BOOL adjustsFontSizeToFitWidth
Run Code Online (Sandbox Code Playgroud)
一个布尔值,指示是否应调整字母之间的间距以适应标签边界矩形内的字符串.
@property(nonatomic) BOOL adjustsLetterSpacingToFitWidth
Run Code Online (Sandbox Code Playgroud)
来源.
ohh*_*hho 118
这就是我Autoshrink
在iOS 9.2,Xcode 7.2中获得UILabel的工作方式(特别是对于6s Plus Storyboard中4s设备中标签字体的高度)...
小智 69
minimumFontSize
在iOS 6中已弃用.
所以用minimumScaleFactor
而不是minmimumFontSize
.
lbl.adjustsFontSizeToFitWidth = YES
lbl.minimumScaleFactor = 0.5
Run Code Online (Sandbox Code Playgroud)
小智 19
我的解决方案是布尔标签.adjustsFontSizeToFitWidth = YES; 但.您必须在界面生成器中将Word Wrapping切换为" CLIP ".然后自动收缩标签.这是非常重要的.
在Swift 3(以编程方式)中,我必须这样做:
let lbl = UILabel()
lbl.numberOfLines = 0
lbl.lineBreakMode = .byClipping
lbl.adjustsFontSizeToFitWidth = true
lbl.minimumScaleFactor = 0.5
lbl.font = UIFont.systemFont(ofSize: 15)
Run Code Online (Sandbox Code Playgroud)
你可以这样写
UILabel *reviews = [[UILabel alloc]initWithFrame:CGRectMake(14, 13,270,30)];//Set frame
reviews.numberOfLines=0;
reviews.textAlignment = UITextAlignmentLeft;
reviews.font = [UIFont fontWithName:@"Arial Rounded MT Bold" size:12];
reviews.textColor=[UIColor colorWithRed:0.0/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:0.8];
reviews.backgroundColor=[UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)
你可以计算这样的行数
CGSize maxlblSize = CGSizeMake(270,9999);
CGSize totalSize = [reviews.text sizeWithFont:reviews.font
constrainedToSize:maxlblSize lineBreakMode:reviews.lineBreakMode];
CGRect newFrame =reviews.frame;
newFrame.size.height = totalSize.height;
reviews.frame = newFrame;
CGFloat reviewlblheight = totalSize.height;
int lines=reviewlblheight/12;//12 is the font size of label
Run Code Online (Sandbox Code Playgroud)
UILabel *lbl=[[UILabel alloc]init];
lbl.frame=CGRectMake(140,220 , 100, 25);//set frame as your requirement
lbl.font=[UIFont fontWithName:@"Arial" size:20];
[lbl setAutoresizingMask:UIViewContentModeScaleAspectFill];
[lbl setLineBreakMode:UILineBreakModeClip];
lbl.adjustsFontSizeToFitWidth=YES;//This is main for shrinking font
lbl.text=@"HelloHelloHello";
Run Code Online (Sandbox Code Playgroud)
希望这会帮助你:-)等待你的回复
归档时间: |
|
查看次数: |
130926 次 |
最近记录: |