对一个 tableView 使用多个 UITableViewCells

Posted

技术标签:

【中文标题】对一个 tableView 使用多个 UITableViewCells【英文标题】:Using Multiple UITableViewCells for one tableView 【发布时间】:2016-07-14 02:52:23 【问题描述】:

我不确定在使用多个自定义单元格视图时是否以正确的方式设置 UITableView。我似乎有我的表工作但是,我认为单元格的重用使您在加载视图后看到的第一个单元格与第一个单元格的大小相同,这应该是唯一一个大小加倍的单元格。一旦我滚动通过它们并备份它们,它们就会变成为它们设置的大小。

有正确的方法吗?我已经查看了其他表格并尝试了他们的方法,但这是我已经让它与那个缺陷一起工作的封闭式。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    
    static NSString *CellIdentifier1 = @"profileCell";
    static NSString *CellIdentifier2 = @"profileCells";

    if (indexPath.section == 0) 
        PFProfileTableCellView * cell = (PFProfileTableCellView *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];

        //only one row in this section
        return cell;

     else
        PFWallPostTableViewCell * cell = (PFWallPostTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];


        return cell;
    

【问题讨论】:

【参考方案1】:

使用此 UITableView 委托方法 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 并根据您的 tableview 的部分返回行高,如下例所示

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

    if (indexPath.section == 0) 
        return 100.0;
    
    return 50.0;

【讨论】:

以上是关于对一个 tableView 使用多个 UITableViewCells的主要内容,如果未能解决你的问题,请参考以下文章

iOS:带有扩展单元格的 TableView

IOS TableView详解

在 reloadSections 后 TableView 部分变为隐藏

在IOS中的tableview顶部设置边距

如何在xamarin中做一个水平的tableview

Tableview单元格快速折叠和扩展值