添加5个模块(tableViewController 控制器)

1. 添加子控制器

  • 分别自定义5个不同名称的 tableViewController

    • 自定义控制器的好处是有利于, 事物分开处理, 每个控制器都各自管理自己的事情, 而不是都交给精华控制器CDHEssenceViewController.h的来管理;如果都交给精华控制器来管理容易造成数据混乱;
    #import "CDHAllViewController.h"
    #import "CDHVideoViewController.h"
    #import "CDHVoiceViewController.h"
    #import "CDHPictureViewController.h"
    #import "CDHWordViewController.h"
    
  • 注意: 一定要将控制器设置为父子控制器, 而不是强引用

    • 如果父控制被 navigationController 包装了, 则添加给父控制的子控制器也有 push… 和 pop… 功能
    • 父子控制器指向的是同一 navigationController ,
    • 如果要添加的控制器只是用属性强引用而不是父子控制器的关系, 父控制被 navigationController 包装了
    • 则仅仅是被引用的属性控制器是不具有 push… 和 pop… 功能, 属性控制器指向的 navigationController 是空.
    // 初始化子控制器
    - (void)setUpChildVcs{
    
        // 添加5个 tableViewController用来展示数据
        [self addChildViewController:[[CDHAllViewController alloc] init]];
        [self addChildViewController:[[CDHVideoViewController alloc] init]];
        [self addChildViewController:[[CDHVoiceViewController alloc] init]];
        [self addChildViewController:[[CDHPictureViewController alloc] init]];
        [self addChildViewController:[[CDHWordViewController alloc] init]];
    }
    



2.添加 scrollView 到精华控制器, 并将子控制器 View 添加到 scrollView 中

  • 这里先一次性全部创建 5 个控制器的 View 并添加
  • 后面会处理成为懒加载的的模式

    /**
     *  scrollView
     */
    - (void)setupScrollView{
        // 不要去自动调整scrollView的内边距
        self.automaticallyAdjustsScrollViewInsets = NO;
    
        UIScrollView *scrollView = [[UIScrollView alloc] init];
        scrollView.frame = self.view.bounds;
        scrollView.backgroundColor = [UIColor greenColor];
        scrollView.showsHorizontalScrollIndicator = NO;
        scrollView.showsVerticalScrollIndicator = NO;
        [self.view addSubview:scrollView];
    
        // 添加5个模块
        for (NSInteger i = 0; i < 5; i++) {
            UIView *childVcView = self.childViewControllers[i].view;
            childVcView.frame = CGRectMake(i * scrollView.CDH_width, 0, scrollView.CDH_width, scrollView.CDH_height);
    //        childVcView.frame = CGRectMake(i * scrollView.CDH_width, 99, scrollView.CDH_width, scrollView.CDH_height - 99 - 49);
            [scrollView addSubview:childVcView];
        }
    
        // 其他设置
        // 设置 contenSize 可滚动范围
        scrollView.contentSize = CGSizeMake(5 * scrollView.CDH_width, 0);
        // 设置分页功能
        scrollView.pagingEnabled = YES;
    }
    
  • 注意: 取消scrollView 自适应内边距

    // 不要去自动调整scrollView的内边距
    self.automaticallyAdjustsScrollViewInsets = NO;
    
  • 注意: 要隐藏 scrollView 的滚动指示条

    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;
    
  • 注意: 一定要设置 contenSize 可滚动范围

    scrollView.contentSize = CGSizeMake(5 * scrollView.CDH_width, 0);
    
  • 注意: 开启分页效果

    scrollView.pagingEnabled = YES;
    


results matching ""

    No results matching ""