(目标C)setFont不适合我

时间:2016-12-09 10:05:58

标签: ios objective-c iphone xcode

在我的应用程序中,我有一个按钮,用户可以为某些标签切换字体样式(System Font或Bradley Hand)。我设法使用NSUserDefaults保存/加载变量。

在故事板上,标签默认具有BradleyHand(以及wChR / wChC / wRhC尺寸类别变体)。

我的viewWillAppear方法如下:

- (void)viewWillAppear:(BOOL)animated {
    userDefaults = [NSUserDefaults standardUserDefaults];
    NSInteger useScriptFont = [userDefaults integerForKey:@"useScriptFont"];
    if(useScriptFont == 0){ //0: switch to system font instead of bradley
        NSLog(@"Font changed");
        CGFloat fontSize = myLabel.font.pointSize;
        [myLabel setFont: [UIFont systemFontOfSize:fontSize]];
    }
    else{
        NSLog(@"No font change");
    }
}

当我运行应用程序时,它确实进入IF状态,但字体样式没有改变。

我做错了什么?请指教。

1 个答案:

答案 0 :(得分:-3)

它可能有用

if(useScriptFont == 0){ //0: switch to system font instead of bradley
    NSLog(@"Font changed");
    dispatch_async(dispatch_get_main_queue(), ^{
        CGFloat fontSize = myLabel.font.pointSize;
        [myLabel setFont: [UIFont systemFontOfSize:fontSize]];
    });
}