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

解決升級(jí)IOS10后由于字體的點(diǎn)數(shù)改變導(dǎo)致部分布局出現(xiàn)顯示不全(顯示為 ... )的情況

首先, 咱們先解決純代碼布局問題,.................

// 核心代碼, 是否啟用字體重定向, 呵呵!!
#define UseFontManager 1UL

#ifdef UseFontManager
#define SysFont(x)   [UIFont sc_systemFontOfSize:(x)]
#define BoldFont(x)  [UIFont sc_boldSystemFontOfSize:(x)]
#else
#define SysFont(x)   [UIFont systemFontOfSize:(x)]
#define BoldFont(x)  [UIFont boldSystemFontOfSize:(x)]
#endif

@interface UIFont(sma11case_IOS)
+ (instancetype)sc_systemFontOfSize: (CGFloat)fontSize;
+ (instancetype)sc_boldSystemFontOfSize: (CGFloat)fontSize;
@end
static double gs_sysVer = 0.0;

@implementation UIFont(sma11case_IOS)
+ (instancetype)sc_boldSystemFontOfSize: (CGFloat)fontSize
{
    if (!gs_sysVer)
    {
        NSString *ver = [[UIDevice currentDevice].systemVersion regexpFirstMatch:@"^\\d+(\\.\\d+)*"];
        gs_sysVer = atof(ver.UTF8String);
    }
    
    if (gs_sysVer >= 10.0)
    {
        CGFloat p = fontSize * 17 / 17.5;
        MLog(@"convert bold font: %f => %f", fontSize, p);
        fontSize = p;
    }
    
    return [UIFont boldSystemFontOfSize:fontSize];
}

+ (instancetype)sc_systemFontOfSize: (CGFloat)fontSize
{
    if (!gs_sysVer)
    {
        NSString *ver = [[UIDevice currentDevice].systemVersion regexpFirstMatch:@"^\\d+(\\.\\d+)*"];
        gs_sysVer = atof(ver.UTF8String);
    }
    
    if (gs_sysVer >= 10.0)
    {
        CGFloat p = fontSize * 17 / 17.5;
        MLog(@"convert bold font: %f => %f", fontSize, p);
        fontSize = p;
    }
    
    return [UIFont systemFontOfSize:fontSize];
}
@end

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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