使用系統手機國旗emoji來顯示國旗

之前一直覺得,要顯示各國國旗,除了讓UI給圖片,沒有其餘辦法。swift

最近發現了手機中自帶國旗,在系統表情鍵盤中就有各國國旗,若是對UI要求不是很高的話,能夠直接使用國旗emojispa

上代碼code

- (NSString *)emojiFlagForISOCountryCode:(NSString *)countryCode {
    NSString *code = countryCode;
    if ([countryCode isEqualToString:@"TW"]) {
        code = @"CN";
    }
    NSAssert(code.length == 2, @"Expecting ISO country code");

    int base = 127462 -65;

    wchar_t bytes[2] = {
        base +[code characterAtIndex:0],
        base +[code characterAtIndex:1]
    };

    return [[NSString alloc] initWithBytes:bytes
                                    length:code.length *sizeof(wchar_t)
                                  encoding:NSUTF32LittleEndianStringEncoding];
}

countryCode傳國家代碼,若是中國CN,blog

[self emojiFlagForISOCountryCode:@"CN"];圖片

這裏由於沒有臺灣的國旗,因此作了下判斷,若是是臺灣就和中國同樣顯示
ip

 

參考連接:unicode

https://en.wikipedia.org/wiki/ISO_3166-1#Notesit

https://stackoverflow.com/questions/30402435/swift-turn-a-country-code-into-a-emoji-flag-via-unicodeio

相關文章
相關標籤/搜索