上一篇 解決IOS10字體適配問題(上) 講解了純代碼布局的解決方案, 但在這XIB泛濫的時代, 必須把XIB也解決一下, 嘿嘿
嚴重警告!!! 以下代碼會直接修改你的代碼文件, 測試前請務必備份!!!!!
+ (void)fix_ios10_xib
{
NSString *path = @"/Users/xxx/xxx/xxx/xxx/sma11case/code/xxxxxx";
[NSFM enumFilesWithPath:path block:^BOOL(NSString *dirPath, NSString *fileName, BOOL isDir) {
if (isDir) return YES;
if (NO == [fileName hasSuffix:@"xib"]
&& NO == [fileName hasSuffix:@".nib"]
&& NO == [fileName hasSuffix:@".storyboard"]) return YES;
NSString *file = [NSString stringWithFormat:@"%@/%@", dirPath, fileName];
NSMutableString *code = [NSMutableString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:NULL];
MLog(@"process: %@", file);
NSArray *fonts = nil;
do{
fonts = [code regexpMatchResults:@" pointSize=\"[\\d\\.]+\""];
if (0 == fonts.count) break;
NSTextCheckingResult *exp = fonts.firstObject;
NSString *line = [code substringWithRange:exp.range];
double weight = [line regexpFirstMatch:@"\\d+"].doubleValue;
double nweight = weight * 17.0 / 17.5;
NSString *nline = [NSString stringWithFormat:@" pointSize=\"%.1lf<sma11caseFont>\"", nweight];
[code replaceCharactersInRange:exp.range withString:nline];
MLog(@"%@ => %@", line, nline);
BreakPointHere;
}while (fonts.count);
[code replaceOccurrencesOfString:@"<sma11caseFont>" withString:@"" options:0 range:NSMakeRange(0, code.length)];
[code writeToFile:file atomically:YES encoding:NSUTF8StringEncoding error:NULL];
BreakPointHere;
return YES;
}];
}
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。