iOS開發(fā)上下滑動UIScrollview隱藏或者顯示導(dǎo)航欄的實例
一、好多App都有上下滑動UIScrollview隱藏或者顯示導(dǎo)航欄,在這里我說說我覺得有用的幾種方法:
1.iOS8之后系統(tǒng)有一個屬性hidesBarsOnSwipe
Objective-C代碼如下
self.navigationController.hidesBarsOnSwipe = YES;
swift代碼如下
self.navigationController?.hidesBarsOnSwipe = true
當(dāng)使用以上代碼時,可以達到效果
2.使用UIScrollViewDelegate一個代理方法
Objective-C代碼如下
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//scrollView已經(jīng)有拖拽手勢,直接拿到scrollView的拖拽手勢
UIPanGestureRecognizer *pan = scrollView.panGestureRecognizer;
//獲取到拖拽的速度 >0 向下拖動 <0 向上拖動
CGFloat velocity = [pan velocityInView:scrollView].y;
if (velocity <- 5) {
//向上拖動,隱藏導(dǎo)航欄
[self.navigationController setNavigationBarHidden:YES animated:YES];
}else if (velocity > 5) {
//向下拖動,顯示導(dǎo)航欄
[self.navigationController setNavigationBarHidden:NO animated:YES];
}else if(velocity == 0){
//停止拖拽
}
}
swift代碼如下
func scrollViewDidScroll(scrollView: UIScrollView) {
let pan = scrollView.panGestureRecognizer
let velocity = pan.velocityInView(scrollView).y
if velocity < -5 {
self.navigationController?.setNavigationBarHidden(true, animated: true)
} else if velocity > 5 {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
}
這種效果最好
3.使用UIScrollViewDelegate另一個代理方法
Objective-C代碼如下
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset</span>
{
if (velocity.y > 0.0) {
[self.navigationController setNavigationBarHidden:YES animated:YES];
} else if (velocity.y < 0.0){
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
}
swift代碼如下
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if velocity.y > 0 {
self.navigationController?.setNavigationBarHidden(true, animated: true)
} else if velocity.y < 0 {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
}
二、總結(jié):三種方法都可以,我個人覺得第二種方法效果最好,大家可以學(xué)習(xí)借鑒一下
以上這篇iOS開發(fā)上下滑動UIScrollview隱藏或者顯示導(dǎo)航欄的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解iOS應(yīng)用開發(fā)中使用設(shè)計模式中的抽象工廠模式
這篇文章主要介紹了iOS應(yīng)用開發(fā)中使用設(shè)計模式中的抽象工廠模式,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-03-03
iOS省市二級聯(lián)動的數(shù)據(jù)組織PHP版
這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)之"省市"二級聯(lián)動的數(shù)據(jù)組織PHP版,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
學(xué)習(xí)iOS自定義導(dǎo)航控制器UINavigationController
這篇文章主要為大家詳細(xì)介紹了iOS自定義導(dǎo)航控制器UINavigationController,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
Swift 2.1 為 UIView 添加點擊事件和點擊效果
本文主要介紹 Swift UIView,這里給大家提供代碼示例作為參考為UIView 添加點擊事件和點擊效果,希望能幫助IOS開發(fā)的同學(xué)2016-07-07
iOScollectionView廣告無限滾動實例(Swift實現(xiàn))
本篇文章主要介紹了iOScollectionView廣告無限滾動實例,可以實現(xiàn)廣告無限滾動,有興趣的可以了解一下。2016-11-11
iOS11實現(xiàn)App內(nèi)自動連接Wi-Fi的方法
這篇文章主要給大家介紹了關(guān)于iOS11實現(xiàn)App內(nèi)自動連接Wi-Fi的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10

