iOS11 適配

一、NavigationBar

UIBarItem

UIBarItem在iOS11在中新增landscapeImagePhone屬性梢为,用來在小圖看不清楚的情況下,長按顯示放大的圖羞酗。在storyboard中也支持這個設(shè)置摧找,對于HUD的image需要設(shè)置另一個iOS11新增的屬性:largeContentSizeImage,關(guān)于這部分更詳細(xì)的討論喇完,可以參考 WWDC2017 Session 215:What's New in Accessibility

返回按鈕的適配

iOS11之前移除返回按鈕文字的代碼:

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

iOS 11 中該方法依舊可以把文字移走伦泥,但是會往下偏一點(diǎn),很不美觀锦溪,并且編輯器會報(bào)出如下類似的警告

iOS11.png

我的解決方法是將push方法包一層不脯,自定義每個vc的navigationItem.backBarButtonItem,這種方式的時候刻诊,在childViewControllers使用push方法的時候會失效防楷,需要使用當(dāng)前viewController進(jìn)行push操作

func dzy_push(_ vc:UIViewController, hide:Bool = false, animated:Bool = true) {
        if hide {
            vc.hidesBottomBarWhenPushed = hide
        }
        let btn = UIButton(type: .custom)
        btn.setImage(UIImage(named: "navi_back"), for: .normal)
        btn.imageEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0)
        btn.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
        //隱藏返回按鈕中的文字
        navigationItem.backBarButtonItem = UIBarButtonItem(customView: btn)
        navigationController?.pushViewController(vc, animated: animated)
    }

可選擇思路:

  • 自定義navigationController,重寫push方法则涯,在push方法中做類似的事情
  • viewController中做文章复局,重寫返回按鈕

LargeTitle

largeTitle.png

在iOS11導(dǎo)航欄多了一個LargeTitleView冲簿,默認(rèn)是不開啟的,專門顯示大字標(biāo)題用的亿昏,整個導(dǎo)航欄的高度達(dá)到了96p峦剔,這不包括狀態(tài)欄的高度,也就是說角钩,整個app頂部高度達(dá)到了116p吝沫,其中statusbar=20,title=44递礼,largetitle=52野舶,不過默認(rèn)是64p;當(dāng)然宰衙,iPhoneX的高度會更高點(diǎn)平道,如果不顯示大字標(biāo)題,頂部的高度也達(dá)到了88供炼,statusbar=44一屋,title=44,如果顯示大字標(biāo)題袋哼,則高度變成了140冀墨,statusbar=44,title=44涛贯,largetitle=52篙螟,也就是說众旗,iPhoneX的劉海高度為24p,大字標(biāo)題如下圖:

largeTitle1.png
largeTitle2.png

具體設(shè)置:
在UI navigation bar中新增了一個BOOL屬性prefersLargeTitles,將該屬性設(shè)置為ture,navigation bar就會在整個APP中顯示大標(biāo)題势似,如果想要在控制不同頁面大標(biāo)題的顯示,可以通過設(shè)置當(dāng)前頁面的navigationItemlargeTitleDisplayMode屬性国葬;

navigationItem.largeTitleDisplayMode 
typedef NS_ENUM(NSInteger, UINavigationItemLargeTitleDisplayMode) {  
/// 自動模式依賴上一個 item 的特性
UINavigationItemLargeTitleDisplayModeAutomatic,
/// 針對當(dāng)前 item 總是啟用大標(biāo)題特性
UINavigationItemLargeTitleDisplayModeAlways,
/// Never 
UINavigationItemLargeTitleDisplayModeNever,
}

Navigation 集成 UISearchController

把你的UISearchController賦值給navigationItem安吁,就可以實(shí)現(xiàn)將UISearchController集成到NavigationBar

navigationItem.searchController  //iOS 11 新增屬性
navigationItem.hidesSearchBarWhenScrolling //決定滑動的時候是否隱藏搜索框睛琳;iOS 11 新增屬性

導(dǎo)航欄的邊距變化

  1. 如果只是設(shè)置了titleView盒蟆,沒有設(shè)置barbutton,把titleview的寬度設(shè)置為屏幕寬度师骗,則titleview距離屏幕的邊距

    • iOS11之前历等,在iPhone6p上是20p,在iPhone6p之前是16p
    • iOS11之后辟癌,在iPhone6p上是12p寒屯,在iPhone6p之前是8p
  2. 如果只是設(shè)置了barbutton,沒有設(shè)置titleview

    • 在iOS11里愿待,barButton距離屏幕的邊距是20p16p
    • 在iOS11之前浩螺,barButton距離屏幕的邊距也是20p16p
  3. 如果同時設(shè)置了titleViewbarButton

    • 則在iOS11之前靴患,titleview和barbutton之間的間距是6p
    • 在iOS11上titleview和barbutton之間無間距,如下圖:
titleView.png

UINavigationController和滾動交互

滾動的時候要出,以下交互操作都是由UINavigationController負(fù)責(zé)調(diào)動的:

  1. UIsearchController搜索框效果更新
  2. 大標(biāo)題效果的控制
  3. Rubber banding效果 //當(dāng)你開始往下拉鸳君,大標(biāo)題會變大來回應(yīng)那個滾輪
    所以,如果你使用navigation bar患蹂,組裝一些整個push和pop體驗(yàn)或颊,你不會得到searchController的集成、大標(biāo)題的控制更新和Rubber banding效果传于,因?yàn)檫@些都是由UINavigationController控制的囱挑。

UIToolbar and UINavigationBar— Layout

在 iOS 11 中,當(dāng)蘋果進(jìn)行所有這些新特性時沼溜,也進(jìn)行了其他的優(yōu)化平挑,針對 UIToolbar 和 UINavigaBar 做了新的自動布局?jǐn)U展支持,自定義的bar button items系草、自定義的title都可以通過layout來表示尺寸通熄。
需要注意的是,你的constraints需要在view內(nèi)部設(shè)置找都,所以如果你有一個自定義的標(biāo)題視圖唇辨,你需要確保任何約束只依賴于標(biāo)題視圖及其任何子視圖。當(dāng)你使用自動布局能耻,系統(tǒng)假設(shè)你知道你在做什么赏枚。

Avoiding Zero-Sized Custom Views

自定義視圖的size為0是因?yàn)槟阌幸恍┠:募s束布局。要避免視圖尺寸為0晓猛,可以從以下方面做:

  • UINavigationBar 和 UIToolbar 提供位置
  • 開發(fā)者則必須提供視圖的size饿幅,有三種方式:
    • 對寬度和高度的約束;
    • 實(shí)現(xiàn) intrinsicContentSize鞍帝;
    • 通過約束關(guān)聯(lián)你的子視圖诫睬;

二、UITabBar

iPhoneX不止多了劉海帕涌,底部還有一個半角的矩形,使得tabbar多出來了34p的高度续徽,不過不管navigationBar還是tabbar一般系統(tǒng)都會自動適配safeArea蚓曼。

tabbar.png

三、管理margins 和 insets

layout margins

基于約束的Auto Layout钦扭,使我們搭建能夠動態(tài)響應(yīng)內(nèi)部和外部變化的用戶界面纫版。Auto Layout為每一個view都定義了marginmargin指的是控件顯示內(nèi)容部分的邊緣和控件邊緣的距離客情。
可以用layoutMargins或者layoutMarginsGuide屬性獲得viewmargin,margin是視圖內(nèi)部的一部分其弊。layoutMargins允許獲取或者設(shè)置UIEdgeInsets結(jié)構(gòu)的margin癞己。layoutMarginsGuide則獲取到只讀的UILayoutGuide對象。

在iOS11新增了一個屬性:directional layout margins梭伐,該屬性是NSDirectionalEdgeInsets結(jié)構(gòu)體類型的屬性:

typedef struct NSDirectionalEdgeInsets {  
    CGFloat top, leading, bottom, trailing;
} NSDirectionalEdgeInsets API_AVAILABLE(ios(11.0),tvos(11.0),watchos(4.0));

layoutMarginsUIEdgeInsets結(jié)構(gòu)體類型的屬性:

typedef struct UIEdgeInsets {  
CGFloat top, left, bottom, right;
} UIEdgeInsets;

從上面兩種結(jié)構(gòu)體的對比可以看出痹雅,NSDirectionalEdgeInsets 屬性用leadingtrailing 取代了之前的 leftright
directional layout margins屬性的說明如下:

directionalLayoutMargins.leading is used on the left when the user interface direction is LTR and on the right for RTL.
Vice versa for directionalLayoutMargins.trailing.

例子:當(dāng)你設(shè)置了trailing = 30糊识;當(dāng)在一個right to left 語言下trailing的值會被設(shè)置在view的左邊绩社,可以通過layoutMarginleft屬性讀出該值。如下圖所示:

margin.png

還有其他一些更新赂苗。自從引入layout margins愉耙,當(dāng)將一個view添加到viewController時,viewController會修復(fù)viewlayoutMarginsUIKit定義的一個值拌滋,這些調(diào)整對外是封閉的朴沿。從iOS11開始,這些不再是一個固定的值败砂,它們實(shí)際是最小值赌渣,你可以改變viewlayoutMargins為任意一個更大的值。而且吠卷,viewController新增了一個屬性:viewRespectsSystemMinimumLayoutMargins锡垄,如果你設(shè)置該屬性為"false",你就可以改變你的layoutMargins為任意你想設(shè)置的值祭隔,包括0货岭,如下圖所示:

margin2.png

安全區(qū)域(Safe Area)

iOS 7 開始,在 UIViewController中引入的 topLayoutGuidebottomLayoutGuide 在 iOS 11 中被廢棄了疾渴!取而代之的就是safeArea的概念千贯,safeArea是描述你的視圖部分不被任何內(nèi)容遮擋的方法。 它提供兩種方式:safeAreaInsetssafeAreaLayoutGuide來提供給你safeArea的參照值搞坝,即 insets 或者 layout guide搔谴。 safeArea區(qū)域如圖所示:

safe-area.png

如果有一個自定義的viewController,你可能要添加你自己的bars桩撮,增加safeAreaInsets的值敦第,可以通過一個新的屬性:addtionalSafeAreaInsets來改變safeAreaInsets的值,當(dāng)你的viewController改變了它的safeAreaInsets值時店量,有兩種方式獲取到回調(diào):

UIView.safeAreaInsetsDidChange()
UIViewController.viewSafeAreaInsetsDidChange()

四芜果、UIScrollView and UITableView的新特性

UIScrollView (棄用automaticallyAdjustsScrollViewInsets)

如果有一些文本位于UI滾動視圖的內(nèi)部,并包含在導(dǎo)航控制器中融师,一般navigationContollers會傳入一個contentInset給其最頂層的viewController的scrollView右钾,在iOS11中進(jìn)行了一個很大的改變,不再通過scrollView的contentInset屬性了,而是新增了一個屬性:adjustedContentInset舀射,通過下面兩種圖的對比窘茁,能夠表示adjustContentInset表示的區(qū)域:

adjustedContentInset1.png

adjustedContentInset2.png

取消掉原有的automaticallyAdjustsScrollViewInsets屬性,新增的contentInsetAdjustmentBehavior屬性用來配置adjustedContentInset的行為脆烟,該結(jié)構(gòu)體有以下幾種類型:

typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {  
    UIScrollViewContentInsetAdjustmentAutomatic, 
    UIScrollViewContentInsetAdjustmentScrollableAxes,
    UIScrollViewContentInsetAdjustmentNever,
    UIScrollViewContentInsetAdjustmentAlways,
}

@property(nonatomic) UIScrollViewContentInsetAdjustmentBehavior contentInsetAdjustmentBehavior;
@property(nonatomic, readonly) UIEdgeInsets adjustedContentInset山林;

//adjustedContentInset值被改變的delegate
- (void)adjustedContentInsetDidChange; 
- (void)scrollViewDidChangeAdjustedContentInset:(UIScrollView *)scrollView;

針對automaticallyAdjustsScrollViewInsets屬性被棄用,比較簡單的適配方法

if (@available(iOS 11.0, *)) {
    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
    self.automaticallyAdjustsScrollViewInsets = NO;
}

Table Views :在iOS 11中默認(rèn)啟用Self-Sizing

這個應(yīng)該是UITableView最大的改變浩淘。我們知道在iOS8引入Self-Sizing 之后捌朴,我們可以通過實(shí)現(xiàn)estimatedRowHeight相關(guān)的屬性來展示動態(tài)的內(nèi)容,實(shí)現(xiàn)了estimatedRowHeight屬性后张抄,得到的初始contenSize是個估算值砂蔽,是通過estimatedRowHeight x cell的個數(shù)得到的,并不是最終的contenSize署惯,tableView不會一次性計(jì)算所有的cell的高度了左驾,只會計(jì)算當(dāng)前屏幕能夠顯示的cell個數(shù)再加上幾個,滑動時极谊,tableView不停地得到新的cell诡右,更新自己的contenSize,在滑到最后的時候轻猖,會得到正確的contenSize帆吻。創(chuàng)建tableView到顯示出來的過程中,contentSize的計(jì)算過程如下圖:

contentSize.png

Self-Sizing在iOS11下是默認(rèn)開啟的咙边,Headers, footers, and cells都默認(rèn)開啟Self-Sizing猜煮,所有estimated 高度默認(rèn)值從iOS11之前的 0 改變?yōu)?code>UITableViewAutomaticDimension
由于Self-Sizing的緣故,contentSizecontentOffset的值在滾動的過程中會一直產(chǎn)生變化败许,所以如果目前的項(xiàng)目你還沒有使用到Self-Sizing王带,contentSizecontentOffset有關(guān)的動畫可能會有問題。

iOS 11中如果不實(shí)現(xiàn)-tableView: viewForFooterInSection:-tableView: viewForHeaderInSection:市殷,那么-tableView: heightForHeaderInSection:- tableView: heightForFooterInSection:不會被調(diào)用愕撰。

iOS11下不想使用Self-Sizing的話,可以通過以下方式關(guān)閉:

self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;

Table Views:separatorInset 擴(kuò)展

iOS 7 引入separatorInset屬性醋寝,用以設(shè)置 cell 的分割線邊距搞挣,在 iOS 11 中對其進(jìn)行了擴(kuò)展∫粜撸可以通過新增的UITableViewSeparatorInsetReference枚舉類型的separatorInsetReference屬性來設(shè)置separatorInset屬性的參照值柿究。

typedef NS_ENUM(NSInteger, UITableViewSeparatorInsetReference) {  
    UITableViewSeparatorInsetFromCellEdges,   //默認(rèn)值,表示separatorInset是從cell的邊緣的偏移量
    UITableViewSeparatorInsetFromAutomaticInsets  //表示separatorInset屬性值是從一個insets的偏移量
}

下圖清晰的展示了這兩種參照值的區(qū)別:

inset.png

Table Views 和 Safe Area

有以下幾點(diǎn)需要注意:

  1. separatorInset 被自動地關(guān)聯(lián)到 safe area insets黄选,因此,默認(rèn)情況下,表視圖的整個內(nèi)容避免了其根視圖控制器的安全區(qū)域的插入办陷。
  2. UITableviewCellUITableViewHeaderFooterViewcontentview 在安全區(qū)域內(nèi)貌夕;因此你應(yīng)該始終在 contentview 中使用add-subviews操作。
  3. 所有的 headersfooters 都應(yīng)該使用UITableViewHeaderFooterView民镜,包括 table headersfooters啡专、section headersfooters

滑動操作(Swipe Actions)

在iOS8之后制圈,蘋果官方增加了UITableVIew的右滑操作接口们童,即新增了一個代理方法(tableView: editActionsForRowAtIndexPath:)和一個類(UITableViewRowAction),代理方法返回的是一個數(shù)組鲸鹦,我們可以在這個代理方法中定義所需要的操作按鈕(刪除慧库、置頂?shù)?,這些按鈕的類就是UITableViewRowAction馋嗜。這個類只能定義按鈕的顯示文字齐板、背景色、和按鈕事件葛菇。并且返回?cái)?shù)組的第一個元素在UITableViewCell的最右側(cè)顯示甘磨,最后一個元素在最左側(cè)顯示。從iOS 11開始有了一些改變眯停,首先是可以給這些按鈕添加圖片了济舆,然后是如果實(shí)現(xiàn)了以下兩個iOS 11新增的代理方法,將會取代(tableView: editActionsForRowAtIndexPath:)代理方法:

// Swipe actions
// These methods supersede -editActionsForRowAtIndexPath: if implemented
- (nullable UISwipeActionsConfiguration *)tableView:(UITableView *)tableView leadingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath
- (nullable UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath

這兩個代理方法返回的是UISwipeActionsConfiguration類型的對象莺债,創(chuàng)建該對象及賦值可看下面的代碼片段:

- ( UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {
    //刪除
    UIContextualAction *deleteRowAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"delete" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
        [self.titleArr removeObjectAtIndex:indexPath.row];
        completionHandler (YES);
    }];
    deleteRowAction.image = [UIImage imageNamed:@"icon_del"];
    deleteRowAction.backgroundColor = [UIColor blueColor];

    UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[deleteRowAction]];
    return config;
}

創(chuàng)建UIContextualAction對象時滋觉,UIContextualActionStyle有兩種類型,如果是置頂九府、已讀等按鈕就使用UIContextualActionStyleNormal類型椎瘟,delete操作按鈕可使用UIContextualActionStyleDestructive類型,當(dāng)使用該類型時侄旬,如果是右滑操作肺蔚,一直向右滑動某個cell,會直接執(zhí)行刪除操作儡羔,不用再點(diǎn)擊刪除按鈕宣羊,這也是一個好玩的更新。

typedef NS_ENUM(NSInteger, UIContextualActionStyle) {
    UIContextualActionStyleNormal,
    UIContextualActionStyleDestructive
} NS_SWIFT_NAME(UIContextualAction.Style)

滑動操作這里還有一個需要注意的是汰蜘,當(dāng)cell高度較小時仇冯,會只顯示image,不顯示title族操,當(dāng)cell高度夠大時苛坚,會同時顯示imagetitle比被。我寫demo測試的時候,因?yàn)槊總€cell的高度都較小泼舱,所以只顯示image等缀,然后我增加cell的高度后,就可以同時顯示imagetitle了娇昙。見下圖對比:

swipe.png

參考鏈接
http://www.reibang.com/p/370d82ba3939
http://www.reibang.com/p/352f101d6df1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尺迂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冒掌,更是在濱河造成了極大的恐慌噪裕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件股毫,死亡現(xiàn)場離奇詭異膳音,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)皇拣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門严蓖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氧急,你說我怎么就攤上這事颗胡。” “怎么了吩坝?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵毒姨,是天一觀的道長。 經(jīng)常有香客問我钉寝,道長弧呐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任嵌纲,我火速辦了婚禮俘枫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逮走。我一直安慰自己鸠蚪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布师溅。 她就那樣靜靜地躺著茅信,像睡著了一般。 火紅的嫁衣襯著肌膚如雪墓臭。 梳的紋絲不亂的頭發(fā)上蘸鲸,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音窿锉,去河邊找鬼酌摇。 笑死膝舅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的妙痹。 我是一名探鬼主播铸史,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怯伊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起判沟,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤耿芹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后挪哄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吧秕,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年迹炼,在試婚紗的時候發(fā)現(xiàn)自己被綠了砸彬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡斯入,死狀恐怖砂碉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刻两,我是刑警寧澤增蹭,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站磅摹,受9級特大地震影響滋迈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜户誓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一饼灿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帝美,春花似錦碍彭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至女责,卻和暖如春漆枚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抵知。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工墙基, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留软族,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓残制,卻偏偏與公主長得像立砸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子初茶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前言 蘋果WWDC開發(fā)者大會上颗祝,終于發(fā)布了大家期待已久的iOS 11,有些新特性功能確實(shí)出人意料恼布。不過大的方面蘋果...
    Mr_Say_Yes閱讀 3,297評論 6 15
  • App界面適配iOS11(包括iPhoneX的奇葩尺寸) 一劍孤城關(guān)注 2017.08.15 11:15*字?jǐn)?shù) 1...
    珊珊大王閱讀 987評論 0 2
  • 更新中......(部分省略) 10.19已更新10.20已更新11.4 已更新 文章推薦:不可能不愛的 XCOD...
    百草紀(jì)閱讀 2,018評論 0 18
  • 有種后知后覺的感覺螺戳,?iOS11已經(jīng)出來半個多月了,本來覺得不需要做太多的適配折汞,我把適配的重點(diǎn)放到了新出的機(jī)型iP...
    Leesim閱讀 2,890評論 0 10
  • 我不知道這已經(jīng)是第多少個我想你想到輾轉(zhuǎn)反側(cè)倔幼,一次次起身上廁所后仍然難以入睡的晚上了。外面在下雨爽待,滴滴答答损同,淅淅瀝瀝...
    房子姑娘閱讀 588評論 2 0