WWDC 2017 剛過去不久拇惋,新增了一些好東西对雪,特別在硬件方面弓候,在軟件方面也有一些需要我們知道的東西库说,自己就懷著好奇心下載了 Xcode9.0-beta版本和手機(jī)版iOS 11,體驗(yàn)了幾天內(nèi)有幾點(diǎn)自己的看法著淆。
- Xcode9-beta版本比之前的beta 版本較穩(wěn)定劫狠,在體驗(yàn)上還是比較滿意的。
- 新改變的模擬器風(fēng)格還是比較好看的牧抽,但是切換不同模擬器的時候之前打開的模擬器不會關(guān)閉嘉熊,如打開很多模擬器 command + q退出的話就一鍵退出了,比較不喜歡扬舒。
- iOS 11 beta 版本(iPhone 6 Plus)用起來比較卡頓阐肤,切換應(yīng)用的時候會出現(xiàn)閃動。在大屏上字體超大讲坎。
- 實(shí)際項(xiàng)目中存在著各種各樣的bug孕惜,將在本文最后做些介紹。
在蘋果官網(wǎng)上其實(shí)已經(jīng)有本次大會所新增的東西晨炕,不管是硬件方面還是軟件方面衫画,有興趣的同學(xué)可以去體驗(yàn)下。蘋果開發(fā)者文檔
新增框架
Core ML : 作為機(jī)器學(xué)習(xí)模型轉(zhuǎn)換為 iOS 可以開發(fā)的方式瓮栗。
ARKit :iOS 11 SDK 新增框架削罩。
Xcode 編譯器
Swift在OC和Swift混編上瞄勾,編譯器運(yùn)行速度有點(diǎn)慢,但是Xcode9 編譯速度上有所提升弥激。在其中的編譯器上進(jìn)行了重寫进陡,支持了對 Swift 代碼的重構(gòu),使用Swift重寫的微服,并添加了GitHub的集成趾疚。如圖所示:
從左側(cè)可以看出GitHub上主次分支,右側(cè)分支代碼提交的詳細(xì)信息以蕴,開發(fā)者可以較快瀏覽項(xiàng)目進(jìn)度糙麦。
自定義NameColor
在 Assets.xcassets 圖片管理可以自定義顏色,在xib 或者storyboard選擇顏色的時候可以看到自己自定義的 NameColor 如圖所示:
Navigation Title
Navigation Title (iOS 11 之后) 采用了新的設(shè)計(jì)丛肮,放大了字體赡磅,prefersLargeTitles為true即可。
拖拽功能
UITextView腾供,UITextField仆邓,UICollectionView鲜滩,UITableView 支持原生拖拽伴鳖。具體參考 蘋果API。
Other Bug
ps:iOS 11適配可參考簡書App適配iOS 11徙硅,可以解決這些bug榜聂。感謝 @愛睡覺的蘑菇的分享
在使用 xcode9.0 - beta 版本發(fā)現(xiàn)一些不正常的小 “錯誤”:
- 自定義 Navigation Bar 返回按鈕,space.width = -20 負(fù)號失效嗓蘑,如以下用法:
UIButton *gradeRuleButton = [UIButton buttonWithType:UIButtonTypeCustom];
[gradeRuleButton setImage:[UIImage imageNamed:@"gradeRule"] forState:UIControlStateNormal];
gradeRuleButton.frame = CGRectMake(0,0, 40, 40);
gradeRuleButton.backgroundColor = [UIColor yellowColor];
gradeRuleButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[gradeRuleButton addTarget:self action:@selector(gradeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:gradeRuleButton];
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
space.width = - 20; 此處 -20將失效為0
self.navigationItem.leftBarButtonItems = @[space,leftBarButtonItem];
- UITableView Group模式下须肆,分區(qū)的時候,若設(shè)置某一區(qū)高度為固定值10桩皿,只需執(zhí)行以下代碼即可:
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 10;
}
在新編譯器還必須執(zhí)行以下自定義HeaderView方法才可生效豌汇。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 10)];
header.backgroundColor = [UIColor redColor];
return header;
}
參考鏈接:王巍(喵神)