0

我的班级结构和同学一样

  • 我有一个主视图控制器,比如说 MainVC;
  • 四个不同的视图控制器,比如 vc1、vc2、vc3 和 vc4;每个vc都有自己的UITableView;
  • MainVC 将这些 VC 显示为 subView;
  • UIView 的一个子类,比如 headerVC,它返回一个标题视图,需要在 VC 中的每个表上显示为横幅;此视图包含在 MainVC 上切换 Vcs 的按钮;

现在,当我运行 MainVC 时,它会加载 VC1 的视图(它有一个 tableView),然后 VC1 在其 tableView 的第一行添加 headerView;当我按下 headerView 上的任何按钮时,MainVC 会根据选择切换 VC;Eech VC 在其 tableView 的第一行添加 headerView;

一切正常,但是当我导航到另一个选项卡项并返回时,headerView 从选定的 VC 表中消失;其余行按原样显示,但标题视图消失;当我向上/向下滚动 tableView 时,headerView(在第一行)再次出现;我不明白它为什么会这样;

我试图将 headerView 放在 tableView 的标题和部分的标题中,但它根本没有出现;通过这种方法,至少标题视图正在显示并且运行良好,但是现在当我更改选项卡并返回时,只有第一行(包含标题视图)消失了;

任何线索?

4

1 回答 1

0

从 TableView 行中删除此 headerview 并将其作为静态视图添加到 VC,如果您希望它与 tableView 一起移动,您可以通过此代码执行此操作

float scrollStartPositionY;
-(void) scrollViewDidScroll:(UIScrollView *)scrollView     {
    if (scrollView.contentOffset.y>=scrollStartPositionY)
        header.hidden=YES;
    else
        header.hidden=FALSE;

header.frame =CGRectMake(header.frame.origin.x,TableView.frame.origin.y TableView.contentOffset.y-    header.frame.size.height,   header.frame.size.width,header.frame.size.height) ;
}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    scrollStartPositionY=scrollView.contentOffset.y+5;
}
于 2013-01-09T09:32:28.323 回答