【问题标题】:Adding Common instance of UIView at zero index of UITableView does not show在 UITableView 的零索引处添加 UIView 的通用实例不显示
【发布时间】:2023-03-06 03:34:01
【问题描述】:

我的班级结构和同学一样

  • 我有一个主视图控制器,比如说 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 的 header 和 section 的 header 中,但它根本没有出现;通过这种方法,至少标题视图显示并运行良好,但是现在当我更改选项卡并返回时,只有第一行(包含标题视图)消失;

有什么线索吗??

【问题讨论】:

    标签: ios uitableview uiview


    【解决方案1】:

    从 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-04
      • 2017-01-16
      • 1970-01-01
      • 2015-05-23
      • 2017-12-24
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多