如何在 iOS 中为表格视图和滚动视图设置偏移量,以便两者一起滚动

Posted

技术标签:

【中文标题】如何在 iOS 中为表格视图和滚动视图设置偏移量,以便两者一起滚动【英文标题】:How can I set offset for table view and scroll view in iOS, so that both scroll together 【发布时间】:2014-04-12 08:30:20 【问题描述】:

我想创建带有标题和数据的数据表。 标题和数据应水平滚动。 标题不应垂直滚动(即标题位置将被固定)。 并且数据部分应该像标题滚动一样水平滚动,如果数据更多也应该垂直滚动,但不影响标题。

首先我创建了 UIView,在标题部分我创建了 ScrollView,而对于剩余数据我使用了 TableView。我正在尝试设置偏移量,但它不起作用。

如果有其他方法请告诉我

【问题讨论】:

你用 xib 或代码创建你的 tableview ???? 好的,你希望你的标题可以修复垂直滚动????并在水平位置滚动??? @ParvendraSingh 没错…… 检查我的答案它对我有用..非常好 ***.com/questions/5581116/… 参考此链接 【参考方案1】:

如果你想在水平方向滚动你的tableview然后在你的table view xib中做一些改变......

1- 根据您的列设置表格视图宽度..

2-检查方向锁定启用

3- 并检查反弹 在你的 xib 中..

然后分别为 iPhone 和 iPad 编写这一行......

    [tableViewq setContentInset:UIEdgeInsetsMake(0,0,0,500)];

这里你只需要根据你的滚动更改值 500

这样你的表格水平滚动

这是您查询的解决方案.... 做这样的事情

     -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
      

          UIView *hView = [[UIView alloc] initWithFrame:CGRectZero] ;

          UILabel *hLabel=[[UILabel alloc] init] ;
          hLabel.backgroundColor = [UIColor grayColor];
          hLabel.textColor = [UIColor whiteColor];
         [hView addSubview:hLabel];

          UILabel *hlb1=[[UILabel alloc]init];
          hlb1.backgroundColor=[UIColor grayColor];
          hlb1.text=@"Name"; 
          hlb1.tag=100;
         [hLabel addSubview:hlb1];

        if(IS_IPAD)
           
              hLabel.frame=CGRectMake(0,0,width Of Table View,Height of Header);
           

        if(IS_IPHONE)
          
               hLabel.frame=CGRectMake(0,0,width Of Table View,Height of Header);
           
       return hView;
     

【讨论】:

这可以帮助您双向滚动@Madhuri 是的,我知道,但我想要的是滚动视图和表格视图都一起滚动 @madhuri 已经在 tableview 中添加了滚动视图 .. 不需要创建滚动视图然后在滚动视图上添加 tableview 请看一下我发布的图片...你告诉我的解决方案对于水平视图是正确的。但我也需要垂直滚动数据而不影响标题位置 @Madhuri 看看这个***.com/questions/22221897/…【参考方案2】:

您可以向表格视图的每个单元格添加滚动视图。在您能够垂直滚动每个单元格之后。

类似这样的:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"mycell"];;
    if(!cell) 
        UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:cell.bounds];
        [cell addSubview:scrollView];
        [scrollView setContentSize:CGSizeMake(cell.frame.size.width * 2, cell.frame.size.height)];
    
    return cell;

【讨论】:

【参考方案3】:

UITableView 是 UIScrollview 的子类,因此不建议在 tableview 中添加滚动视图。

我建议你分别使用滚动视图和表格视图,然后将表格视图的框架设置为 (0, scrollview.frame.origin.y+scrollview.frame.size.height,width,height)。

所以现在您可以独立处理水平和垂直滚动了。

【讨论】:

以上是关于如何在 iOS 中为表格视图和滚动视图设置偏移量,以便两者一起滚动的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 的集合视图中为内容偏移设置动画?

在 ios 的滚动视图内检测按钮的触摸

使用 UIScrollView 和 PageControl 定义滚动量

在 UICollectionView/UITableView 中为滚动视图的偏移设置动画会导致单元格过早消失

如何让表格视图滚动到图像视图上方?

ios7所有搜索视图和表格视图关闭20像素