objective c - UILabel字体大小?

我似乎无法使用以下代码修改UILabel的字体大小:

itemTitle.font = [UIFont systemFontOfSize:25];

当我将数字25增加到更大的数字时,似乎只会在标签上添加一个上边距,从而将文本向下推得太多,以便文本在底部被切断或完全溢出。

我在systemFontOfSize 25的其他地方有另一个UILabel,它比itemTitle文本小得多。 这是怎么回事? 25不应该是绝对值吗?

我对如何以编程方式更改uilabels的字体大小感到困惑。

John asked 2019-09-11T11:56:22Z
11个解决方案
171 votes

我通过以下代码修改了UILabel:

label.font=[label.font fontWithSize:25];

试试这个,看看它是否适用于你的情况???

xtreme answered 2019-09-11T11:57:09Z
56 votes

检查您的标签是否未设置为自动调整大小。 在IB中,它被称为“自动收缩”,并且位于字体设置旁边。 以编程方式,它被称为adjustsFontSizeToFitWidth

Rob Napier answered 2019-09-11T11:56:38Z
34 votes
[label setFont:[UIFont systemFontOfSize:9]];

这对我有用。

John Paul Manoza answered 2019-09-11T11:57:37Z
10 votes

**您可以通过这些属性设置字体大小**

timedisplayLabel= [[UILabel alloc]initWithFrame:CGRectMake(70, 194, 180, 60)];

[timedisplayLabel setTextAlignment:NSTextAlignmentLeft];

[timedisplayLabel setBackgroundColor:[UIColor clearColor]];

[timedisplayLabel setAdjustsFontSizeToFitWidth:YES];

[timedisplayLabel setTextColor:[UIColor blackColor]];

[timedisplayLabel setUserInteractionEnabled:NO];

[timedisplayLabel setFont:[UIFont fontWithName:@"digital-7" size:60]];

timedisplayLabel.layer.shadowColor =[[UIColor whiteColor ]CGColor ];

timedisplayLabel.layer.shadowOffset=(CGSizeMake(0, 0));

timedisplayLabel.layer.shadowOpacity=1;

timedisplayLabel.layer.shadowRadius=3.0;

timedisplayLabel.layer.masksToBounds=NO;

timedisplayLabel.shadowColor=[UIColor darkGrayColor];

timedisplayLabel.shadowOffset=CGSizeMake(0, 2);
kapil answered 2019-09-11T11:58:03Z
10 votes

对于Swift 3.1和Swift 4,如果您只想更改标签的字体大小:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)
Kevin ABRIOUX answered 2019-09-11T11:58:27Z
6 votes

以编程方式调整标签文本大小的非常简单但有效的方法: -

label.font=[UIFont fontWithName:@"Chalkduster" size:36];

:-)

Madhur Sodhi answered 2019-09-11T11:58:52Z
1 votes

这对我有用:

sequencerPlayLabel.font = [UIFont fontWithName:kTypeFont size:kTypeFontSize];

-丰富

user2887097 answered 2019-09-11T11:59:25Z
1 votes

这对我有用

斯威夫特3

label.font = label.font.fontWithSize(40.0)

斯威夫特4

label.font = label.font.withSize(40.0)
Krunal answered 2019-09-11T11:59:57Z
0 votes

上面的答案帮助很大。

这是Swift版本。

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)
Christopher Wade Cantley answered 2019-09-11T12:00:29Z
0 votes

在C#中这些方法可以解决问题,在UIkit中可以使用这些方法。

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);
Shanu Singh answered 2019-09-11T12:00:53Z
-1 votes

尝试更改标签框架大小的高度和宽度,以便不切割文本。

 [label setframe:CGRect(x,y,widht,height)];
vishiphone answered 2019-09-11T12:01:18Z
translate from https://stackoverflow.com:/questions/10475513/uilabel-font-size