解決IOS10字體適配問題(下)

上一篇 解決IOS10字體適配問題(上) 講解了純代碼布局的解決方案, 但在這XIB泛濫的時代, 必須把XIB也解決一下, 嘿嘿

嚴重警告!!! 以下代碼會直接修改你的代碼文件, 測試前請務必備份!!!!!

首先你需要一個強大的功能庫, 來自鄙人的代碼垃圾堆, https://github.com/qokelate/sma11caseA, 然后在OSX中運行如下代碼, 頂多也就4-5秒, 一份完全兼容的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ā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容