如何在UITableView中确定单元格的部分 - objective-c

时间:2012-05-29 17:05:22

标签: objective-c uitableview cells sections

我正在开发具有搜索视图的应用程序, 搜索视图包含一个包含3个部分的tableView - 我通过

手动实现该部分
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{
    // Return the number of sections.
    return 3;
}


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    if (section == 0){
        UITextField *title = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 320, 10)];
        [title setBackgroundColor:[UIColor lightGrayColor]];
        [title setTextAlignment:UITextAlignmentRight];
        [title setFont:[UIFont boldSystemFontOfSize:15]];
        [title setText:@"videos"];
        return title ;
    }
    if (section == 1){
        UITextField *title = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 320, 10)];
        [title setBackgroundColor:[UIColor lightGrayColor]];
        [title setTextAlignment:UITextAlignmentRight];
        [title setFont:[UIFont boldSystemFontOfSize:15]];
        [title setText:@"documents"];
        return title ; 
    }
    if (section == 2){
        UITextField *title = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 320, 10)];
        [title setBackgroundColor:[UIColor lightGrayColor]];
        [title setTextAlignment:UITextAlignmentRight];
        [title setFont:[UIFont boldSystemFontOfSize:15]];
        [title setText:@"questions"];
        return title ; 
    }
}

现在,我收到的所有数据都是这样的:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"> 
<channel>
    <title>documents</title>
        <item>
        <title>how to count the days</title>
        <link>some link...</link>
        <date>11/09/2007 16:45:00</date>
        <SupplierName>roei</SupplierName>
        <CategoryName>the omer</CategoryName>

      </item>

        <item>
        <title>research</title>
        <link>some link...</link>
        <date>16/05/2010 13:41:00</date>
        <SupplierName>eran</SupplierName>
        <CategoryName>shavoot</CategoryName>
      </item>

</channel>

<channel>
    <title> video </title>
                <item>
                <title>the end of holiday</title>
                <link>some link...</link>
                <date>06/06/2011 08:56:00</date>
                <SupplierName>dina</SupplierName>
                <CategoryName>shavoot</CategoryName>

              </item>

                <item>
                <title>bible</title>
                <link>some link...</link>
                <date>24/05/2012 10:00:00</date>
                <SupplierName>amir</SupplierName>
                <CategoryName>shavoot</CategoryName>        
              </item>

</channel>



        <channel>
            <title>questions</title>

                <item>
                <title>questions for shavvot</title>
                <link>some link...</link>
                <date>28/10/2008 13:31:00</date>
                <SenderName>אלי.ד.</SenderName>
                <CategoryName>holidays</CategoryName>
              </item>

                <item>
                <title>Shavoot</title>
                <link>some link...</link>
                <date>25/05/2008 01:01:00</date>
                <SenderName>amir</SenderName>
                <CategoryName>holidays</CategoryName>
              </item>


        </channel>


</rss>

正如你所看到的那样 - 我有部分名称的标题,但我该如何确定细胞的正确部分? 我将所有数据解析为一个数组,然后使用字典将其删除:

NSDictionary *object = [ResultsArrayDisplay objectAtIndex:indexPath.row];

请帮助我,我经过几个小时的尝试,到目前为止在互联网上没有任何帮助。

1 个答案:

答案 0 :(得分:0)

这是你的问题:

  

我将所有数据解析为一个数组,然后使用它将其解析出来   词典:

将每个部分的数据放在自己的数组中,然后使用indexPath.section确定要使用的数组。对于每个部分,它只为部分提供行,因此您可以使用indexPath.row索引每个数组。

如果您坚持将所有内容保存在一个数组中,那么您将必须保持每种类型的数量,然后使用它来确定您需要的数组索引。

在任何一种情况下,一定要实施numberOfRowsinSection:。如果你正在使用多个数组,那么这只是该部分的数组计数,否则它将是该部分中使用的主数组的部分。