使用uibutton和if语句更改字体

时间:2019-06-09 08:42:06

标签: ios objective-c

我创建了一个UIlabel和IBAction 我试图通过按下UIButton使用if else语句来回切换字体。

我在下面尝试过
它将切换到ArialRoundedMTBold,但不会切换回Helvetica。

if ( [UIFont fontWithName:@"HelveticaNeue" size:17.0]) {
   [labelz1 setFont:[UIFont fontWithName:@"ArialRoundedMTBold" size:17.0]];
} else if ( [UIFont fontWithName:@"ArialRoundedMTBold" size:17.0]){

     [labelz1 setFont:[UIFont fontWithName:@"HelveticaNeue" size:17.0]];

}

我也尝试过

if ( labelz1.font ==[UIFont fontWithName:@"HelveticaNeue" size:17.0]) {
    [labelz1 setFont:[UIFont fontWithName:@"ArialRoundedMTBold" size:17.0]];
} else if ( labelz1.font ==[UIFont fontWithName:@"ArialRoundedMTBold" size:17.0]){

    [labelz1 setFont:[UIFont fontWithName:@"HelveticaNeue" size:17.0]];

}

1 个答案:

答案 0 :(得分:0)

您的if有效地问到“ HelveticaNeue 17pt是否存在吗?”的答案是肯定的,因此您将标签字体设置为ArialRoundedMTBold 17pt。 if测试与设置标签字体之间没有连接–您将标签设置为“是否存在HelveticaNeue 17pt吗?”这是什么字体都没关系。总是会有相同的答案。

您需要问一个问题:标签labelz1 HelveticaNeue 17pt的字体是吗?”。为此,请查看使用labelz1.font获取标签的字体并测试其字体,例如:

UIFont *labFont = labelz1.font;
UIFont *f1 = [UIFont fontWithName:@"HelveticaNeue" size:17.0];
if( [labFont isEqual:f1] ) ...

HTH