適配iPhone X UITabBar及UITableView偏移的情況

Xcode Release版本出來了恒水,iPhone的適配也在悄然進(jìn)行中。此篇文章就此針對(duì)iPhone X的UITabBar做適配顷蟆。

UITabBar 偏移問題

當(dāng)在push到下一界面時(shí)诫隅,并設(shè)置hidesBottomBarWhenPushedYES將會(huì)出現(xiàn)Figure-1的情況 -- UITabBar向上偏移34pt即藍(lán)色區(qū)域。下面提供一個(gè)safeAreaInsets變化的過程:

deltaVaue = 83 - 49 = 34

2017-09-21 15:32:50.063642+0800 ios11NavBar[3698:126162] viewSafeAreaInsetsDidChange:{44, 0, 83, 0}
2017-09-21 15:32:50.070815+0800 ios11NavBar[3698:126162] DidLayout-containerView: {{0, 0}, {375, 812}}
2017-09-21 15:32:56.447208+0800 ios11NavBar[3698:126162] viewSafeAreaInsetsDidChange:{44, 0, 49, 0}
2017-09-21 15:32:56.447649+0800 ios11NavBar[3698:126162] DidLayout-containerView: {{0, 0}, {375, 778}}
2017-09-21 15:32:56.448666+0800 ios11NavBar[3698:126162] viewSafeAreaInsetsDidChange:{44, 0, 83, 0}
2017-09-21 15:32:56.448890+0800 ios11NavBar[3698:126162] DidLayout-containerView: {{0, 0}, {375, 812}}

Figure-1

解決方案

繼承UITabBarController帐偎,修改UITabBarY坐標(biāo)值逐纬。不是最優(yōu)方案,如果有較好的方案希望大家能不嗇指點(diǎn)一二削樊。

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    //TODO: adapt tabbar's y value.
    if ([RTDeviceHardware iPhoneXDevice]) {
        CGFloat deltaTabBarY = SCREEN_HEIGHT - CGRectGetHeight(self.tabBar.frame);
        self.tabBar.frame = (CGRect){0, deltaTabBarY, self.tabBar.bounds.size};
    }
}

最終效果如圖

Figure-2

UITableView 刷新后偏移問題

在iOS11上豁生,設(shè)置UITableViewstyleUITableViewStyleGrouped時(shí)兔毒,并且行高大于220(囧 項(xiàng)目中有類似問題,又經(jīng)過反復(fù)驗(yàn)證我就大膽預(yù)估了一個(gè)值甸箱,220就由此得來)育叁,當(dāng)push再pop回來刷新列表 就會(huì)導(dǎo)致列表偏移,并沒有停留在之前的位置芍殖。

Figure-3

解決方案

//TODO: iOS 11之后豪嗽,預(yù)估值有默認(rèn)高度,如果不需要就設(shè)置0
 _tableView.estimatedRowHeight = 0;//這里需要吐槽下豌骏,如果不設(shè)置為0 就會(huì)出現(xiàn)刷新后偏移問題龟梦。        
 _tableView.estimatedSectionHeaderHeight = 0;        
 _tableView.estimatedSectionFooterHeight = 0;

Demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市窃躲,隨后出現(xiàn)的幾起案子计贰,更是在濱河造成了極大的恐慌,老刑警劉巖蒂窒,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躁倒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡刘绣,警方通過查閱死者的電腦和手機(jī)樱溉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纬凤,“玉大人福贞,你說我怎么就攤上這事⊥J浚” “怎么了挖帘?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)恋技。 經(jīng)常有香客問我拇舀,道長(zhǎng),這世上最難降的妖魔是什么蜻底? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任骄崩,我火速辦了婚禮,結(jié)果婚禮上薄辅,老公的妹妹穿的比我還像新娘要拂。我一直安慰自己,他們只是感情好站楚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布脱惰。 她就那樣靜靜地躺著,像睡著了一般窿春。 火紅的嫁衣襯著肌膚如雪拉一。 梳的紋絲不亂的頭發(fā)上采盒,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音蔚润,去河邊找鬼磅氨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嫡纠,可吹牛的內(nèi)容都是我干的悍赢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼货徙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了皮胡?” 一聲冷哼從身側(cè)響起痴颊,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屡贺,沒想到半個(gè)月后蠢棱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體槽奕,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡禀忆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拱镐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片量没。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玉转,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殴蹄,到底是詐尸還是另有隱情究抓,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布袭灯,位于F島的核電站刺下,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏稽荧。R本人自食惡果不足惜橘茉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姨丈。 院中可真熱鬧畅卓,春花似錦、人聲如沸构挤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筋现。三九已至唐础,卻和暖如春箱歧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背一膨。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工呀邢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豹绪。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓价淌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親瞒津。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蝉衣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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