Xcode8下iOS10常見報錯閃退,字體適配和編譯不過的問題及解決方案
9月14日凌晨1點,蘋果推送了iOS10,于是一上班就迅速升級了iOS10,然后坑就這樣開始了。。。
問題1
首先是xcode的問題,發(fā)現(xiàn)xcode升級到8才能真機運行,于是先了解了下iOS10的適配。
有這個iOS10適配總結(jié),還有這個iOS10適配問題收集整理,還有這個iOS10適配,還有很多其他的。
這個好辦,取消nullabl關(guān)鍵字就好。
問題二,編譯不過的問題
clang報錯le..
這個是詳細的信息,一堆莫名其妙的東西出來了。
隱隱約約感覺是WGS84T0GCJ02.o這個實現(xiàn)文件的問題,然后進行刪除,在run,居然成功了。
所以原因暫定為對一些c函數(shù)的支持不好。
如果發(fā)現(xiàn)項目奔潰的,該去檢查老舊模塊的一些老文件。沒有什么好的解決辦法,去排查警告下的那些類吧。
問題三,適配問題(如何解決)
用iOS10的同學(xué)都看到了適配的問題,因為iOS10更換了系統(tǒng)字體,之前有看到文章說在原來的基礎(chǔ)上加5個像素的寬度,其實這個是不夠準確詳細的,在Xcode8的xib下測了一下不同長度需要的寬度。以下以15號字體為例:
Xcode8下完全展示15號字體所需的frame最小寬度
字數(shù)超過20后,加5也不能滿足了。
寫了個方法,調(diào)用NSStringDrawing框架下獲取文字寬帶的方法,結(jié)果發(fā)現(xiàn)
- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"testLab width = %f",_testLab.frame.size.width); [self getStringWidth:@"一一一一一一一一一一" front:[UIFont systemFontOfSize:10]]; } - (void)getStringWidth:(NSString *)str front:(UIFont *)strFront { NSDictionary *attributes =[NSDictionary dictionaryWithObjectsAndKeys:strFront, NSFontAttributeName, nil]; CGSize stringSize = [str sizeWithAttributes:attributes];// 規(guī)定字符字體獲取字符串Size,再獲取其寬度。 CGFloat width = stringSize.width; NSLog(@" width= %f",width); }
xcode7下是這樣的(托一個小伙伴運行了下)
但是xcode8下是這樣的
sizeWithAttributes這個方法不會撒謊,所以調(diào)這個方法的基本都沒問題。
但是如果簡單的根據(jù)字體個數(shù)來算lable的寬度,font * 字數(shù),那就可以根據(jù)字數(shù)適當加幾個坐標。
以上所述是小編給大家介紹的Xcode8下iOS10常見報錯閃退,字體適配和編譯不過的問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS開發(fā)中使用Picker View實現(xiàn)一個點菜應(yīng)用的UI示例
這篇文章主要介紹了iOS開發(fā)中使用Picker View實現(xiàn)一個點菜應(yīng)用的UI示例,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-01-01iOS App開發(fā)中修改UILabel默認字體的方法
UILabel是控制字體顯示的主要方式,這里我們就來看看通過NSAttributedText和NSMutableAttributedText這兩個類或者用runtime的方式來在iOS App開發(fā)中修改UILabel默認字體的方法2016-07-07iOS開發(fā)實戰(zhàn)之Label全方位對齊的輕松實現(xiàn)
這篇文章主要給大家介紹了關(guān)于iOS開發(fā)實戰(zhàn)之輕松實現(xiàn)Label全方位對齊的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10iOS實現(xiàn)獲取系統(tǒng)iTunes音樂的方法示例
這篇文章主要給大家介紹了關(guān)于iOS如何實現(xiàn)獲取系統(tǒng)iTunes音樂的相關(guān)資料,文中通過示例代碼給大家詳細介紹了實現(xiàn)的方法,并給大家介紹了MPMediaPickerController的相關(guān)知識,對大家的學(xué)習(xí)或者工作具有一定的幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Objective-C方法的聲明實現(xiàn)及調(diào)用方法
這篇文章主要介紹了Objective-C方法的聲明實現(xiàn)及調(diào)用方法,包括五參數(shù)的方法和單個參數(shù)的方法,結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-02-02