ios - 使用 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]];
}
解决方案
您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] ) ...
高温高压
推荐阅读
- statistics - 统计:多列数据的重新评分
- azure - 如何访问通过 Azure 自动化机器学习中的自动特征化步骤转换的数据集
- visual-studio-code - 发布 vscode 扩展时遇到错误
- outlook - 在 Outlook 中有没有办法只显示发件人的电子邮件地址而不是 Outlook 客户端旁边的名称?
- javascript - 获取类的 .attr() 并将其保存在 var 中
- android - Android离线安装com.android.tools.build:builder:3.3.0
- python - 不和谐附件链接
- python - 如何使用 python 创建 XML、XSL 文件
- excel - 统计打开文件的历史视图
- python - 更新同一图中绘制的网络图并根据节点度更改节点颜色