我正在寻找一个 iOS 应用程序的国际化程度,并遇到了一些这样的代码实例:
[_lblTitle setFont:[UIFont fontWithName"HelveticaNeue-Bold" size:18.0]];
在其他平台上,我会说这不是最佳做法。例如,如果我想减小某些语言的字体大小(由于文本扩展),或者如果我想删除粗体(例如对于双字节语言),则需要更改代码。
问题 - 这是 iOS 的最佳做法,如果不是,还有什么替代方法?
免责声明 - 我对 iOS 开发一点也不熟悉。
iOS 不像其他平台那样通用,并且在代码中设置大小和字体是一种常见的做法,无论是在您的类中还是在外部 Contanst 类中,或者在 Interface Builder 中设置它们,如果你正在使用它。
作为个人偏好,在 Interface Builder 中设置字体会使它们更难看到,我更喜欢在我的类(class)中设置所有字体并一起查看它们。然后,如果我改变一个字体,其余的会同时改变,我不必对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]];
关于iOS - 对字体/字体大小进行硬编码是否不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746551/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |