Ios 如何使单元格重叠?

Ios 如何使单元格重叠?,ios,uitableview,Ios,Uitableview,我想让细胞重叠 我所做的是 调整tableview的contentSize: int count = [self.tableView numberOfRowsInSection:0]; self.tableView.contentSize = CGSizeMake(self.view.frame.size.width ,(100 * count - 30 * (count - 1))); 并将单元格设置为行索引路径: - (UITableViewCell *)tableView:(UITab

我想让细胞重叠

我所做的是 调整tableview的contentSize:

int count = [self.tableView numberOfRowsInSection:0];
self.tableView.contentSize = CGSizeMake(self.view.frame.size.width ,(100 * count - 30 * (count - 1)));
并将
单元格设置为行索引路径

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (!cell) {
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
      cell.contentView.backgroundColor = [UIColor orangeColor];
    }
    if (indexPath.row != 0) {
      UITableViewCell *currentCell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:indexPath.row + 1 inSection:0]];
      [currentCell setFrame:CGRectMake(0, - 30, self.view.frame.size.width, 100)];
    }
    return cell;
}
但当我测试时,这不起作用


有什么帮助吗?谢谢。

您的代码出现的问题是,您在
tableView:cellForRowAtIndexPath:
中手动设置的值正在被UITableViewController布局方法覆盖

不应直接编辑表格视图单元格的边框,因为这是UITableViewController在内部设置的属性。您只能使用UITableViewDelegate协议的方法与此进行交互。(
tableView:heightforrow索引路径:
,…)

我认为实现您所描述内容的最佳方法(最干净的方法)是将UICollectionView(而不是UITableView)子类化,并定义自定义布局

然而,如果你想走这条老路,你可以通过许多不同的方式实现明显的行重叠

例如,可以创建两种不同的行类型,一种高度为30,另一种高度为70,其中第一种表示行的重叠部分,第二种表示行的不重叠部分。然后将第一种类型用于偶数行,第二种类型用于奇数行

希望这有帮助


p、 s.如果我的英语不是最好的,我真的很抱歉。

我不知道它是否能用:1)为HeaderInSection配置一个高度为50的视图2)为row将行高设置为70 in heightForRowAtIndexPath方法3)为每行设置ClipsToBounds:FALSE 4)保持内容大小不变请添加解释您想要什么在应用程序层面实现这一点,即重叠的目的是什么。这将帮助我们更好地思考这个问题。我想实现一个动画,就像我不得不让你失望一样,但实现这样一个动画的道路与你所建议的非常不同,即细胞重叠。动画中的代码要么是通过AsyncDisplaykit框架完成的,要么是使用UIDynamics完成的。你能帮我写一些代码吗?绝对最好的资源有以下两个:是一些很棒的示例代码,但是如果你想要一个更好、更完整的介绍,你可以观看苹果工程师解释UICollectionView的官方演示。否则你可以在网上找到数不清的教程,这些教程比我在这里解释的要好100倍。对不起,我没有足够的声誉来支持你的答案。谢谢