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里添加几个不同的视图了,然后就去执行不同的操作就可以了。

TableView和Scrollview的混用

时间: 2024-10-01 23:28:30

TableView和Scrollview的混用的相关文章

cocos2dx之TableView和ScrollView的混合使用

************************************************************************** 时间:2015-01-09 作者:Sharing_Li 转载出处:http://blog.csdn.net/sharing_li/article/details/42298317 *************************************************************************** 玩过<开心消消乐>

tableview(scrollview)被拉动后能立即滚动到顶端

再仔细说下: 1:tableview滑动前,下面悬浮的按钮隐藏2:tableview被拉动后,下面悬浮的按钮出现,点击这个按钮tableview滚动到顶端.(便于分页加载多页后用户能立即滚动到顶端) - (void)viewDidLoad {    aTopBtn = [UIButton buttonWithType:UIButtonTypeCustom];    aTopBtn.frame = CGRectMake(ScreenWidth-50,ScreenHeight-64-105, 35,

ios 中tableview和scrollView的区别

scrollView: 1. 介绍scrollView一些属性     1>.要想使用scrollView必须做两件事 1).设置scrollView内容 2).设置contentSize (滚动范围) 2>.其他属性         1). contentOffset(滚动位置)         2). contentInset(额外增加的滚动区域)         3). bounces (设置UIScrollView是否需要弹簧效果) 4). crollEnabled (设置UIScro

tableview(scrollview) (使其停止滑动 &amp;&amp; 计算拉动距离)

再仔细说下: 1:想求出拉动tableview(scrollview)移动的距离. 2:使它被拉动后在被拉动的状态下停下的方法.{    aTopBtn = [UIButton buttonWithType:UIButtonTypeCustom];    aTopBtn.frame = CGRectMake(ScreenWidth-50,ScreenHeight-64-105, 35, 35);    aTopBtn.backgroundColor = [UIColor clearColor];

iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏)

iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏) 2017.03.16 12:18* 字数 52 阅读 563评论 4喜欢 2 1. 截取屏幕尺寸大小的图片并保存至相册 保存至相册只需将方法saveImage中的代码替换即可 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0); [self.view.layer renderInContext:UIGraphicsGetCur

ios 两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动

两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动 这是一个创建于 359 天前的主题,其中的信息可能已经有所发展或是发生改变. [联动] :两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动 前言 现在市面上有很多 app 都有联动功能,有的是两个 TableView 之间的联动,比如美团外卖,百度外卖,饿了么等等.有的是 TableView 与 CollectionView 之间的联动

iOS tableView不让头部和尾部跟随

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { UITableView *tableview = (UITableView *)scrollView; CGFloat sectionHeaderHeight = AutoWHGetHeight(50); CGFloat sectionFooterHeight = AutoWHGetHeight(0); CGFloat offsetY = tableview.contentOffset

scrollview 增加额外的滚动区域

//增加额外的滚动区域,因为tableview继承scrollview,所以也有这个方法 self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 10, 0);

一个控制器(UIViewController)中需要管理多个tableView,addChildViewController注意事项

有时候,一个控制器(UIViewController)中需要管理多个tableView,我们需要将多个控制器加入到主控制器中去.使用UIViewController的addChildViewController方法即可.但是这时可能会在tableView的位置上出现问题: 1.UIViewController的automaticallyAdjustsScrollViewInsets属性是会根据所在界面的status bar,navigationbar,tabbar的高度,自动调整scrollVi