首页 > 解决方案 > 使用 uibutton 和 if else if 语句更改字体

问题描述

我创建了一个 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]];

}

标签: iosobjective-c

解决方案


if有效地提出了“HelveticaNeue 17pt 存在吗?”的问题,答案是肯定的,因此您将标签字体设置为 ArialRoundedMTBold 17pt。测试和设置标签字体之间没有任何联系if——你将标签设置为“HelveticaNeue 17pt 是否存在?”并不重要。总会有相同的答案。

您需要问“标签labelz1HelveticaNeue 的字体是 17pt 吗?”。为此,请查看使用标签的字体labelz1.font并测试它是什么字体,例如:

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

高温高压


推荐阅读