iOS實現(xiàn)scrollview上拉顯示Navbar下拉隱藏功能詳解
本文主要介紹的是關(guān)于iOS中scrollview上拉顯示Navbar下拉隱藏的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來看看詳細(xì)的介紹:
動畫效果:
關(guān)于下拉隱藏Nabbar,上拉顯示,有三種方式:推崇第一種,但是做的還是沒簡書、知乎那樣流暢,第一種是對navbar做了平移,第二種,第三種都是隱藏。。
方法如下:
第一種,和第二種處理時機一樣,但是效果更好,并沒有處理Navbar 的隱藏。
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ oldY = scrollView.contentOffset.y; } -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ if (scrollView.contentOffset.y > oldY) { [UIView animateWithDuration:0.3 animations:^{ self.navigationController.navigationBar.transform = CGAffineTransformMakeTranslation(0, -64); }]; ; }else{ [UIView animateWithDuration:0.3 animations:^{ self.navigationController.navigationBar.transform = CGAffineTransformIdentity; }]; } } -(void)viewWillDisappear:(BOOL)animated{ self.navigationController.navigationBar.transform = CGAffineTransformIdentity; }
第二種:在開始拖拽的時候保存偏移量,結(jié)束拖拽的時候比較當(dāng)前偏移量,判斷是否隱藏Navbar。
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ oldY = scrollView.contentOffset.y; } -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ if (scrollView.contentOffset.y > oldY) { [CATransaction begin]; [CATransaction setAnimationDuration:1.0]; [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; //set the position [self.navigationController setNavigationBarHidden:YES animated:YES]; [CATransaction commit]; ; }else{ [CATransaction begin]; [CATransaction setAnimationDuration:1.0]; [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; [self.navigationController setNavigationBarHidden:NO animated:YES]; [CATransaction commit]; } }
第三種: 是根據(jù)拖拽的velocity進(jìn)行判斷,很霸道但是效果不如第一種,,隱藏的時機不對你可以做個比較;
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{ if(velocity.y>0) { [self.navigationController setNavigationBarHidden:YES animated:YES]; } else { [self.navigationController setNavigationBarHidden:NO animated:YES]; } } 最后選擇合適的時候恢復(fù)Navbar 的狀態(tài),建議放在viewWillDisappear里,否則在進(jìn)入下一個頁面里很突兀。 -(void)viewWillDisappear:(BOOL)animated{ [self.navigationController setNavigationBarHidden:NO animated:YES]; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家我們的支持。
上一篇:virtualbox安裝增強功能時【未能加載虛擬光盤】的問題解決
欄 目:vb
下一篇:window通過vbs+bat實現(xiàn)自動在后臺運行nodejs application
本文標(biāo)題:iOS實現(xiàn)scrollview上拉顯示Navbar下拉隱藏功能詳解
本文地址:http://mengdiqiu.com.cn/a1/vb/7146.html
您可能感興趣的文章
- 01-10多進(jìn)程的實現(xiàn)投票的vbs腳本
- 01-10利用vbs腳本實現(xiàn)設(shè)置IE的打印頁眉頁腳信息
- 01-10用vbs實現(xiàn)定時運行web文件的方法
- 01-10利用vbs類實現(xiàn)css按鈕的代碼
- 01-10一些經(jīng)典的主要用戶黑客的vbs腳本結(jié)合echo的dos下實現(xiàn)
- 01-10基于邏輯運算的簡單權(quán)限系統(tǒng)(原理,設(shè)計,實現(xiàn)) VBS 版
- 01-10用vba實現(xiàn)將記錄集輸出到Excel模板
- 01-10用vbs實現(xiàn)本地連接禁用/啟用腳本代碼
- 01-10用vbs實現(xiàn)不死帳號的代碼
- 01-10基于邏輯運算的簡單權(quán)限系統(tǒng)(原理,設(shè)計,實現(xiàn)) VBS 版


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實例說明
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法