iOS自定義tabBar手勢(shì)側(cè)滑返回(仿系統(tǒng))

當(dāng)我們自己創(chuàng)建了一個(gè)自定義的tabBar,通過push跳轉(zhuǎn)頁面的時(shí)候,會(huì)發(fā)現(xiàn)tabBar沒有像我們所希望的那樣隱藏起來。

然后,我們通過hide來隱藏我們的tabBar,又會(huì)遇到第二個(gè)問題,tabBar的出現(xiàn)和消失會(huì)很突兀,并不是我們所想要的。

有的人提出用,hidesBottomBarWhenPushed來控制,第三個(gè)問題來了,我們自定義的tabBar跟系統(tǒng)的tabBar沒有關(guān)系啊。

以上的問題我曾經(jīng)也遇到過,然后解決了,下面我就分享下我的解決思路。

Step 1 push
Step 2 截屏
Step 3 隱藏tabBar
Step 4 返回
Step 5 viewDidAppear

1.push
一個(gè)很常見的Nav push,直接push過去就可以了

2.截取屏幕
在push過之前,我們需要截取一張圖片,也就是push過去之前,控制器的狀態(tài)。
我們將這個(gè)圖片覆蓋在前一個(gè)控制上,這樣的話,當(dāng)你pop返回的時(shí)候,也會(huì)看到這張圖片。

/** * 截取屏幕的方法 */
- (void)cutScreem{
UIGraphicsBeginImageContextWithOptions(self.tabBarController.view.bounds.size, YES, 0.0);
// 截取層的畫面
[self.tabBarController.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// 將圖片給鋪滿整個(gè)視圖
self.backImageView.image = image;
}

3.隱藏tabBar
在下一個(gè)控制器中,viewDidLoad隱藏自定義控制器。

4.返回
在iOS 7.0 之后,Nav返回有兩種:
第一種是點(diǎn)擊返回按鈕,第二種是屏幕側(cè)滑返回

5.viewDidAppear
以上的都是為了針對(duì)第二種返回的解決方案。
在返回到上一層控制器的時(shí)候:
第一步, 我們先要移除覆蓋在上面ImageView。
第二步, 我們要使我們的自定義tabBar出現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,026評(píng)論 4 61
  • 兇,胡蜂,體碩大,性躁好攻,如狼似虎猛。惹惱,一窩蜂,趕快逃命。胡蜂,鋪天蓋地盯,一往無前沖,咬定青山不放松。莫僥...
    青梅煮酒見君閱讀 278評(píng)論 0 0
  • 導(dǎo)讀:為什么說包容從感恩開始呢?因?yàn)榘輹?huì)讓自己從外而內(nèi)的改變,相由心生。更讓我學(xué)會(huì)感恩,當(dāng)自己不再匱乏愛的時(shí)候,...
    短視頻制作啟航閱讀 273評(píng)論 1 1

友情鏈接更多精彩內(nèi)容