代码改变世界

iOS 悬停view

2017-11-17 15:33  dengchaojie_learner  阅读(743)  评论(0编辑  收藏  举报

//view位于tableview(或者scrollview)的上面,当向上滚动scrollview时,view跟随滚动,并最终悬停固定位置。

//tabBar是view,scrollView是个tableview

 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    

    if (scrollView == self.scrollView) { // tab switch

        

    } else { // offset ajust

        

        CGFloat contentOffsetY = scrollView.contentOffset.y;

 

        // control tabBar center

        CGPoint tabBarCenter = self.tabBar.center;

        tabBarCenter.y = fabs(MIN(0, contentOffsetY)) + 20 + kTabBarHeight/2;// 悬停的y值是20;fabs函数是一个求绝对值的函数

        self.tabBar.center = tabBarCenter;

  }

 

}

//contentInset和scrollIndicatorInsets,一般配合使用

self.tableView2.contentInset = insets;          // content insets for tableView

self.tableView2.scrollIndicatorInsets = insets; // scroll Indicator insets,滚动条

// 整页的滚动

self.scrollView.pagingEnabled = YES;

 

// tableview的数据源发生变化了,可以调用reloadData;而tableview初始化时,会自动触发DataSource方法,不需要调用reloadData