Jay*_*dya 8 fonts uiapplication ios
我正在开发一个ios应用程序,我必须使用UI的自定义字体.我知道如何在应用程序中集成新的自定义字体.为此我有
此自定义字体显示效果.但我想要做的是,我想将它们设置为systemFont.所以我不必在所有UI元素中设置它们.
我想要类似的东西
[[UIApplication sharedApplication] systemFont:@"Arial"];
Run Code Online (Sandbox Code Playgroud)
这可能吗?谁能帮我这个?
mat*_*odv 16
在为iOS 7更新我的iOS应用程序时遇到了同样的问题.我想为整个应用程序设置自定义字体,即使对于不允许自定义字体的控件(例如选择器)也是如此.
经过对网络和Twitter的一些研究后,我解决了使用Method Swizzling的做法,这是一种交换方法实现的做法.
注意:如果不小心使用,此方法可能会有危险!阅读关于SO的讨论:Method Swizzling的危险
但是,这是做什么的:
<objc/runtime.h>.m文件.Run Code Online (Sandbox Code Playgroud)+(UIFont *)regularFontWithSize:(CGFloat)size { return [UIFont fontWithName:@"Your Font Name Here" size:size]; } +(UIFont *)boldFontWithSize:(CGFloat)size { return [UIFont fontWithName:@"Your Bold Font Name Here" size:size]; }
//方法调整
+(void)load
{
SEL original = @selector(systemFontOfSize:);
SEL modified = @selector(regularFontWithSize:);
SEL originalBold = @selector(boldSystemFontOfSize:);
SEL modifiedBold = @selector(boldFontWithSize:);
Method originalMethod = class_getClassMethod(self, original);
Method modifiedMethod = class_getClassMethod(self, modified);
method_exchangeImplementations(originalMethod, modifiedMethod);
Method originalBoldMethod = class_getClassMethod(self, originalBold);
Method modifiedBoldMethod = class_getClassMethod(self, modifiedBold);
method_exchangeImplementations(originalBoldMethod, modifiedBoldMethod);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7085 次 |
| 最近记录: |