zoukankan      html  css  js  c++  java
  • TableView和Scrollview的混用

      刚开始做ios,所以很多都不懂,把不会的记下来,可以帮助有需要的人,也可以留下自己学习路上的点滴!!!!

      首先:在一个VC里添加一个ScrollView,然后,在ScrollView里添加3个VC:(TableView、Tableview、ViewController);

      第一步:创建三个不同的VC;

      第二步:在viewcontroller.h里:

          #import "CommunityOneViewController.h"

          #import "CommunityTwoViewController.h"

          #import "CommunityThreeViewController.h"

          @interface MainViewController : BaseViewController<UIScrollViewDelegate>

          //通过视图来定义属性

          @property(nonatomic,strong) CommunityOneViewController *oneTableView;

          @property(nonatomic,strong) CommunityTwoViewController *twoTableView;

          @property(nonatomic,strong) CommunityThreeViewController *threeView;

          //定义滚动视图

          @property(nonatomic,strong) UIScrollView *scroll;

          //定义分页控件

          @property(nonatomic,strong) UIPageControl *page;

      第三步:在viewcontroller.m里:

    - (void)viewDidLoad

    {

        [super viewDidLoad];

     

        self.scroll = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

        _scroll.pagingEnabled=YES;

        _scroll.delegate = self;

        _scroll.bounces=YES;

        [_scroll setBackgroundColor:[UIColor lightGrayColor]];

        self.scroll.contentSize = CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height);

        

           ////////////////////////////////第一个视图////////////////////////////////////////

     

        _oneTableView = [[CommunityOneViewController alloc]init];

        _oneTableView.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);

           ////////////////////////////////第二个视图////////////////////////////////////////

        

        _twoTableView = [[CommunityTwoViewController alloc]init];

        _twoTableView.view.frame = CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);

           

        ////////////////////////////////第三个视图////////////////////////////////////////

        

        _threeView = [[CommunityThreeViewController alloc]init];

        _threeView.view.frame = CGRectMake(self.view.frame.size.width*2, 0, self.view.frame.size.width, self.view.frame.size.height);

        

        [self.scroll addSubview:_oneTableView.view];

        [self.scroll addSubview:_twoTableView.view];

        [self.scroll addSubview:_threeView.view];

        [self.view addSubview:_scroll];

        self.page = [[UIPageControl alloc]initWithFrame:CGRectMake(150, 360, 10, 25)];

        [self.page setTintColor:[UIColor redColor]];

        _page.numberOfPages=3;

        _page.currentPageIndicatorTintColor=[UIColor greenColor];

        [self.page addTarget:self action:@selector(gotoPage) forControlEvents:UIControlEventValueChanged];

        [self.view addSubview:_page];

    }

    -(void)gotoPage{

        CGRect frame;

        frame.origin.x = self.scroll.frame.size.width * self.page.currentPage;

        frame.origin.y = 0;

        frame.size = self.scroll.frame.size;

        [self.scroll scrollRectToVisible:frame animated:YES];

    }

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{

        CGFloat pageWidth = self.scroll.frame.size.width;

        // 在滚动超过页面宽度的50%的时候,切换到新的页面

        // + 1 是因为paged control 是从1开始计数的

        int page = floor((self.scroll.contentOffset.x - pageWidth/2)/pageWidth) + 1;

        self.page.currentPage = page;

    }

     只需要这几步,就可以在一个ScrollView里添加几个不同的视图了,然后就去执行不同的操作就可以了。

  • 相关阅读:
    MySQL中char(36)被认为是GUID导致的BUG及解决方案
    Hadoop相关的考题
    算法题
    对于Java静态内部类的理解
    关于网站数据分析
    static class 静态类(Java)转
    《深入浅出数据分析》读书笔记
    hive利器 自定义UDF+重编译hive
    使用kubectl实现Kubernetes容器与本地的文件双向复制
    Coolite Toolkit学习笔记二:服务器端Alert,Confirm,Prompt
  • 原文地址:https://www.cnblogs.com/xumei/p/3847360.html
Copyright © 2011-2022 走看看