我正在考虑确定iOS应用程序的国际化程度,并且遇到了一些像这样的代码实例:
[_lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0]];
在其他平台上,我会说这不是最佳做法。例如,如果我想减少某些语言的字体大小(由于文本扩展),或者如果我想删除粗体(例如双字节语言),则需要更改代码。
问题 - 这是iOS的最佳实践,如果不是,那么替代方案是什么?
免责声明 - 我对iOS开发并不熟悉。
答案 0 :(得分:1)
iOS不像其他平台那样通用,并且在代码中设置大小和字体是常见的做法,无论是在您的类中还是在外部Contanst类中,或者只是在Interface Builder中设置它们你正在使用它。
作为个人喜好,在Interface Builder中设置字体会让它们更难看,我更喜欢在我的班级中设置所有字体并一起看。然后,如果我更改字体,其余部分将同时更改,我不必逐个使用xib中的所有元素。
在任何解决方案中,每次更改字体时都必须重新编译。
我可以根据不同语言对其进行调整,可以调整文本设置的标签大小如下:
myLabel.minimumFontSize = 8.;
myLabel.adjustsFontSizeToFitWidth = YES;
如果文本不合适,这会将文本缩小为8,因为它是最小的。
另一种做法是检测手机的语言并在其中设置字体,例如:
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
根据结果,对语言执行此操作:
[_lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0]];
,例如另一个:
[_lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue" size:15.0]];