国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

IOS實(shí)現(xiàn)上滑隱藏NvaigtionBar而下拉則顯示效果

2020-07-26 03:15:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

先看看原APP的效果

實(shí)現(xiàn)過(guò)程

主要是給view中的滾動(dòng)視圖添加一個(gè)KVO來(lái)監(jiān)視它的滑動(dòng),再根據(jù)它的offset來(lái)做一下操作,下面是代碼

[myTableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:nil];

獲取tableViewcontentOffset 之后再根據(jù)具體需求來(lái)實(shí)現(xiàn)邏輯判斷

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context { if ([object isEqual:myTableView] && [keyPath isEqualToString:@"contentOffset"]) {  //獲取新值舊值  CGFloat newY = [change[@"new"] CGPointValue].y;  CGFloat oldY = [change[@"old"] CGPointValue].y;  float i = newY - oldY;//下拉是新值小于舊值的,所以i<0 是下拉 i>0 是上滑   NSLog(@"%f",myTableView.contentOffset.y);  if (myTableView.contentOffset.y > -64 && myTableView.contentOffset.y <= 24) {//邊界條件,此處不精確   if (i <= 0 && _isHide == NO && self.navigationController.navigationBar.frame.origin.y == 20){    //下拉+bar 已經(jīng)顯示的狀態(tài),不再移動(dòng)    return;   }   _isHide = NO;   //設(shè)置navigationbar 的frame 使他根據(jù)tableView來(lái)滑動(dòng)   self.navigationController.navigationBar.frame = CGRectMake(0, -44 - myTableView.contentOffset.y, self.view.bounds.size.width, 44);   //控制透明度   self.navigationController.navigationBar.alpha = -myTableView.contentOffset.y/64;  }else if (myTableView.contentOffset.y > 24) {   if (i > 10) {//更改數(shù)值大小可以控制觸發(fā) navigation bar 的滑動(dòng)速度    _isHide = YES;   }else if(i < -10) {    _isHide = NO;   }  }  [self.navigationController setNavigationBarHidden:_isHide animated:YES]; }}

完成效果圖

總結(jié)

其實(shí)這個(gè)效果實(shí)現(xiàn)起來(lái)確實(shí)沒(méi)有什么難度,寫這個(gè)主要是給大家看一下我的實(shí)現(xiàn)過(guò)程與思路,希望可以幫到大家。如果有疑問(wèn)可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 红桥区| 海城市| 察隅县| 布尔津县| 寿阳县| 凌海市| 永靖县| 南京市| 陈巴尔虎旗| 正安县| 大化| 扬州市| 康马县| 江山市| 渝中区| 汶上县| 桂阳县| 井研县| 雅江县| 水富县| 赫章县| 沂南县| 兴城市| 康马县| 东港市| 镇平县| 曲周县| 安仁县| 呼玛县| 红河县| 合川市| 仲巴县| 吐鲁番市| 珲春市| 上饶市| 自贡市| 修水县| 稷山县| 利津县| 南丹县| 龙游县|