在UITableView的零索引处添加UIView的公共实例不会显示

时间:2012-12-18 14:37:04

标签: ios uitableview uiview

我班级的结构是同伴

  • 我有一个主视图控制器,比如说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;

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

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

任何线索??

1 个答案:

答案 0 :(得分:0)

从TableView行中删除此标题视图并将其作为静态视图添加到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;
}