iOS之旅--swift emoji 處理
Swift中使用NSAttributedString展示Emoji遇到的坑
引:新的功能模組由Swift3開發,開發階段由於沒有測試emoji表情,前幾天發現這個bug,當發出的文字中帶有emoji表情的時候,顯示會出現問題,如圖1:
其實展現的時候,應該是這樣的,如圖2:
圖1:
圖2:
根據上面出現的問題,開始尋找答案,從編碼這個思路找答案,會發現可以部分解決問題,但是不能完全解決問題。後來從Swift的字串長度計算得到答案,在Swift中字串的長度是用String.characters.count得出的,當中間有表情的時候,則會計算錯誤。下面給出測試例子:
由此我們可以看出當有emoji的時候,計算長度是有誤差的,當我們使用NSAttributedString的時候,會用到addAttribute(String, value: Any, range: NSRange)函式,計算range的時候就會用到長度計算,如果使用String.characters.count,則結果很顯然就是錯誤的。
相關推薦
iOS之旅--swift emoji 處理
Swift中使用NSAttributedString展示Emoji遇到的坑 引:新的功能模組由Swift3開發,開發階段由於沒有測試emoji表情,前幾天發現這個bug,當發出的文字中帶有emoji表情的時候,顯示會出現問題,如圖1: 其實展現的時
iOS之旅--UIScrollView疑難處理
引子:前兩天做了一個小活動,不是太趕週期,所以就不想採用xib和storyboard的方式開發,就使用Masonry控制約束,純程式碼進行了開發。本次開發主要是使用UIScrollView。 當然,很快就把程式碼碼完了,開始進入除錯,突然發現scrollVie
iOS之旅--NIM SDK 使用指南
便於記錄檢視地址,方便查詢 NIM SDK 使用指南 SDK 概述 網易雲信 SDK (NIM SDK) 為移動應用提供完善的 IM 開發框架,遮蔽其內部複雜細節,對外提供較為簡潔的 API 介面,方便第三方應用快速整合 IM 功能。SDK 相容 i
iOS之旅--iOS11的一些適配工作
跳轉App Store評論 - (void)gotoAppStoreEvaluate { //1028355284是我們APP的appID,替換成你的應用的appID即可 NSStri
iOS之旅--釋出自己的CocoaPods庫(元件化開發第一步)
從去年的Dev大會上就開始慢慢接觸瞭解元件化,但是沒有實際的專案可以操作,擱淺至今,中間也嘗試性的試驗過,現在來一個總結。 1、思考 抽取專案中獨立的程式碼,作為模組與整體專案分開。首先我能想到的網路庫、工具類、封裝好的一些控制元件,涉及業務的由於業務有
iOS之旅--隱藏(去除)導航欄底部橫線
iOS開發大部分情況下會使用到導航欄,由於我司的app導航欄需要與下面緊挨著的視窗顏色一致,導航欄底部的橫線就會影響這個美觀,LZ使用了以下方法。覺得不錯,分享來給小夥伴們。 1)宣告UIImageView變數,儲存底部橫線 @interface M
iOS之旅--scrollView實現無限輪播
scrollView實現無限輪播 這裡為了實現真實的無限輪播,採用了 n+2 張圖片輪播,程式碼控制,顯示 第2 ~ 第n+1張圖片。 1、第1、n+1個圖片一樣,第2,n+2 個圖片一樣,具體看程式碼, //第一張圖片(向前拖拽,為了迴圈,第一張圖應
iOS之旅--UILabel後邊出現一條線的解決辦法
UILabel 在label的周圍出現一條線,如圖: 原因:frame的寬高沒有取整,或者說上下左右邊沒有取整 解決方法:在取frame得時候,加上CGRectIntegral,使得寬、高得到一個整數,然後就完美的解決這個問題了 修改前:label.f
ios學習之旅---指針也不難
ror 邏輯 初始化 維數 賦值運算 等價 格式 沒有 本質 1、認識指針#include <stdio.h> //基本數據類型作為函數參數傳遞是值傳遞 //void moveFront(int x ,int y) //{ // x = x + 2;
ios學習之旅--oc對象的關系
pos 其它 對象 found self 面向對象設計原則 ipa 匿名 nsstring 1.匿名對象:就是沒有名字對象 1、匿名對象僅用一次 使用場景: 1、當我們僅僅要調用一個對象的某個方法一次的時候能夠使用匿名對象 2
koa2學習之旅----處理上傳圖片路徑的解決辦法
console.log(ctx.req.file.path.substring(6)) // 單獨處理圖片上傳路徑,擷取public,防止圖片找不到,教程中的方法直接暴露後臺檔案是大忌,雖然可以通過seo手段處理 let imgurlSubstring = ctx.req.file.path
iOS開發(swift):頁面跳轉之設定第一次執行的介面
0.介面回顧 1.在AppDelegate檔案中新增如下程式碼 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {
有獎徵集活動系列—— iOS遊戲程式設計之旅 已結束
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
iOS報錯:linker command failed with exit code 1 (use -v to see invocation)尋找答案之旅
iOS報錯:linker command failed with exit code 1 (use -v to see invocation 錯誤出現 問題分析 最終解決方案 錯誤出現 Android開發程式設計師
iOS之檢測模擬器在各個方向上的切換(Swift 4.2)
import UIKit class ViewController: UIViewController { fileprivate func addImageView() { //
iOS之UIView的基本使用(Swift 4.2)
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after l
IOS 之 Swift教程(一) -入門語法(常量、變數)
Swift常量、變數的定義和使用 眾所周知大家在使用其他語言時也有常量和變數的區分,因此swift也不列外. 常量和變數把一個名字(比如maxNumber or minNumber)和一個指定型別的值(比如整形10,浮點型10.0,字串”hello Worl
Swift之旅:2.完成計算器,初探MVC設計模式
斯坦福大學公開課:iOS8 github上字幕連結:字幕 百度網盤資源下載連結:百度網盤 1.計算器完成 ①回車鍵及相關的程式碼 //定義一個數組,用來當做棧儲存資料使用 var openStack = Array<Double>
iOS開發之網路錯誤分層處理
在使用iOS的URL載入系統時,手機端和伺服器端端連線可能會出現各種各樣的錯誤,大致可以分為3種: 1、作業系統錯誤:資料包沒有到達指定的目標導致。這類錯誤iOS中用NSError物件包裝起來了,這類錯誤可以用Apple 提供的Reachability來檢測到
【WIN32之旅】WINDOWS錯誤處理與參考(四)
上一篇,我們說到了GetLastError()函式,可是它返回的是一個DWORD(雙字型)的錯誤程式碼,如果我們並不清楚FormatMessage()函式或者就只想快速簡單地得到錯誤