自定义“浮动”UITableViewCells

时间:2013-02-26 02:52:49

标签: ios uitableview

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

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

enter image description here

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

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

2 个答案:

答案 0 :(得分:4)

这可以通过分组表视图中的子类UITableViewCell轻松完成。下图显示了我通过拖动各种UI元素快速制作的图像,并创建了一个自定义类,它只包含.h文件中的IBOutlets。

enter image description here

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

- (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中的代码是计算单元格高度的典型代码(除了通常使用索引路径并为每个单元格获取不同的字符串之外)。

答案 1 :(得分:0)

我认为那就是你要找的东西。

IBScrollViewFloatingHeader