【问题标题】:Setting up multiple sections in UITableView在 UITableView 中设置多个部分
【发布时间】:2012-11-04 14:58:17
【问题描述】:

我已经设置了一个带有自定义单元格的 uitableview。

我想把这些分成带标题的部分。看着下面的照片,我正在寻找以下布局:

部分 - 我的个人资料 自定义单元格 - wwwwwwwwwwwwww...
部分 - 应用
自定义单元格 - 游戏
自定义单元格 - 共享
自定义单元格 - 费率
自定义单元格 - 设置
自定义单元格 - 帮助
自定义单元格 - 注销

我可以看到如何添加一个部分并控制一个部分中的行,但这会将单元格复制到多个部分中,我不确定如何让一个部分包含一行,而另一个部分包含 6 行。我还想设置这些部分的样式以显示,有点像 Facebook 菜单样式。

我是否应该为实际部分创建自定义单元格而不对部分(单元格)选择进行任何操作?

这是 UITableView 的代码

static NSString *CellIdentifier = @"Cell";
LeftMenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

    NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"LeftMenuTableViewCell" owner:nil options:nil];

    for (UIView *view in views) {
        if([view isKindOfClass:[UITableViewCell class]]) {
            cell = (LeftMenuTableViewCell*)view;


        }
    }
}

【问题讨论】:

    标签: ios uitableview tableview


    【解决方案1】:

    您可以在其中定义节数和行数,如下所示:

    - (UIView *) tableview:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    {
        UIView view;
        if(section == 0) {
             // Initialise view for section 1
        } else {
             // Initialise view for section 2
        }
    }
    
    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 2;
    }
    
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
    
        return ((section == 0) ? 1 : 6);
    }
    
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        // return appropriate cell(s) based on section
        if(indexPath.section == 0) 
        {
            // Return 1 cell
        }
        else if(indexPath.section == 1) 
        {
            switch(indexPath.row) {
                case 0: // Initialize cell 1
                        break;
                case 1: // Initialize cell 2
                        break;
                ...
            }
        }
        return cell;
    }
    

    【讨论】:

    • 谢谢,太好了。我正在寻找的是这样设置节标题的样式。这是可能的,还是我需要一个自定义单元格作为第一个单元格(节标题)。在我的问题中,部分将充当自定义单元格的标题。因此,如果我确实需要一个自定义单元格,它将是自定义部分单元格,然后是自定义单元格,然后是自定义部分单元格,然后是 6 个其他自定义单元格......?
    • 您可以使用 viewForHeaderInSection 在部分中添加不同的视图。我已经更新了我的答案
    • 谢谢我可以添加这个。但是我应该如何设置这些部分的样式?就像它们应该是自定义单元格一样,还是我应该编写子视图?
    猜你喜欢
    • 2017-01-09
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多