美文网首页
UITableView中Header和Footer悬停方式

UITableView中Header和Footer悬停方式

作者: chenyihai | 来源:发表于2018-10-24 11:51 被阅读0次

UITableView中Header和Footer悬停方式

注:UITableView的UITableViewStyle

  样式分为UITableViewStylePlain和UITableViewStyleGrouped两种;

  plain样式下区头和区尾是悬浮的(即拖动表的时候区头和区尾不会消失,一直显示在界面上);

       grouped样式区头和区尾是随表一起滑动的。静态的tableview需要分区时(XIB)样式只能是Grouped。

一: 2个都悬停 UITableViewStylePlain 

二:2个都不悬停 UITableViewStyleGrouped 

三:Header不悬停,Footer悬停,使用UITableViewStylePlain

这里的50是Header的高度,根据需要自行改变

以下代码都写在scrollViewDidScroll代理方法中

if scrollView.contentOffset.y <= 50 && scrollView.contentOffset.y >= 0 { scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0) }else if scrollView.contentOffset.y >= 50 { scrollView.contentInset = UIEdgeInsetsMake(-50, 0, 0, 0) } 

四:Header悬停,Footer不悬停,使用UITableViewStylePlain

这里需要在viewDidLoad中先加一句,作用是在页面滚动之前就先隐藏第一个section的Footer,50是Footer的高度,根据需求自行改变

self.tableView.contentInset =UIEdgeInsetsMake(0,0,-50,0)

以下代码都写在scrollViewDidScroll:(UIScrollView *)scrollView代理方法中

         if (scrollView == self.tableView) {     

 CGRect rectInTableView = [self.tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];       

CGRect rect = [self.tableView convertRect:rectInTableView toView:self.tableView.superview];        

              if (rect.origin.y > -self.tableView.contentSize.height) {            

              self.tableView.contentInset = UIEdgeInsetsMake(0, 0, -50, 0);        

            }  

  } 

相关文章

网友评论

      本文标题:UITableView中Header和Footer悬停方式

      本文链接:https://www.haomeiwen.com/subject/nmuttqtx.html