ios - 使用 uibutton 和 if else if 语句更改字体

标签 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]];

}

最佳答案

您的 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

关于ios - 使用 uibutton 和 if else if 语句更改字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513170/

相关文章:

objective-c - 发送到 Core Data 的无法识别的选择器导致应用程序崩溃

ios - 从 UITableView 中删除行时出现问题

ios - 我如何告诉我的 ViewController 一个 View 被触摸了?

iphone - UIWebView 到 View Controller ?

ios 应用程序无错误地崩溃(即使通过单击按钮调用空操作)

ios - 带有原型(prototype)单元、部分的复杂 UITableView

ios - 使用 splitViewController :willChangeToDisplayMode: in iOS8 时如何显示 barButtonItem

Iphone UITextField 只有整数

objective-c - iOS 8 : setting background color UITableView via UIAppearance

ios - 为什么setViewControllers不触发viewWillDisappear和dealloc?