UILabel字体需要时间来更新

时间:2016-12-26 11:20:08

标签: ios objective-c iphone fonts uilabel

gulp.task('default' , ['watch']);

'名称'的类型为UILabel。 我正在设置self.name.font = [UIFont fontWithName:@"OpenSans" size:17.0]; self.name.textColor = [UIColor redColor]; 的{​​{1}}和font。打开页面后,我可以看到color红色(我的viewcontroller)。但是,该字体最初是常规UILabel并需要更新一些。如果我在页面上停留一段时间,字体会自动更新为新的color

为什么2个属性的更新有滞后?

2 个答案:

答案 0 :(得分:2)

可能你正在更新主线程外的ui元素。

所有ui元素都应该在主线程中更新。不这样做可能会导致ui不一致,更新延迟,有时也会崩溃。

如果您不在主线程中并想要更新ui元素。检查iOS - Ensure execution on main thread中的第二和第三个答案(不接受)以了解该信息。

答案 1 :(得分:0)

检查字体文件是否存在,字体名称是否与@“OpenSans”相同,大写字母也是。

可能是因为字体名称不匹配

您可以通过以下方式检查应用中的所有字体:

NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
    NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
    fontNames = [[NSArray alloc] initWithArray:
                 [UIFont fontNamesForFamilyName:
                  [familyNames objectAtIndex:indFamily]]];
    for (indFont=0; indFont<[fontNames count]; ++indFont)
    {
        NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
    }
}