1

我一直在网上搜索这个问题的答案,我相信它有一个简单的答案。

我正在我的应用程序中创建一个 UITableView,我希望它在顶部具有“浮动”表格视图单元格和一个菜单。像这样:

在此处输入图像描述

我确定这些是自定义 UITableView 单元格,但我不确定如何像这样创建它们并根据内容使它们的大小动态变化,以及如何在顶部包含一个菜单,一旦用户向下滚动,该菜单就会消失/显示或向上。

对此的任何见解都会很棒!

4

2 回答 2

4

这可以通过分组表视图中的子类 UITableViewCell 相当容易地完成。下图显示了我通过拖入各种 UI 元素并创建一个自定义类快速制作的一个,该类在 .h 文件中只有 IBOutlets。

在此处输入图像描述

带有乱码的标签与下面的灰色视图和单元格的顶部相关联,没有设置特定的高度,因此当单元格增长时,它会增长。这是我用来填充表格的代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.theData = @[@"One",@"Two",@"Three",@"Four",@"Five",@"Six",@"Seven",@"Eight",@"Nine"];
    [self.tableView reloadData];
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
   return  self.theData.count;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *s = @"asdfhfl fl flfh sflhsalfjh fajlhf lf asldf fh asljfafh sjlfh ajf fljf fasjlfhjfhjfhjsf hsjfhsjfhajsfh the end";
    CGSize size = [s sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(281, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
    return size.height + 130;
}

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

    RDCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RDCell" forIndexPath:indexPath];
    cell.lbl1.text = self.theData[indexPath.section];
    cell.lbl2.text = @"asdfhfl fl flfh sflhsalfjh fajlhf lf asldf fh asljfafh sjlfh ajf fljf fasjlfhjfhjfhjsf hsjfhsjfhajsfhajlfjafh";
    return cell;
}

请注意,我将部分的数量设置为数组的计数,因此您将获得每个 1 行的单独部分。heightForRowAtIndexPath 中的代码是计算单元格高度的典型方式(除了您通常会使用索引路径并为每个单元格获取不同的字符串)。

于 2013-02-26T04:41:10.960 回答
0

我认为这就是你要找的..

IBScrollViewFloatingHeader

于 2015-06-18T18:12:02.883 回答