UITableviewCell 行和标题是两个不同的数组

Posted

技术标签:

【中文标题】UITableviewCell 行和标题是两个不同的数组【英文标题】:UITableviewCell row and header are two different array 【发布时间】:2017-05-04 06:31:52 【问题描述】:

我有两个数组。一个用于 Tableview 标题,另一个用于 Tableview 行。我想显示不同行的标题明智值。部分的数量取决于在标题视图中使用的数组。

行数由tableview行数组除以标题数组计算得出。

UI 运行良好,标题和部分的值也很好,但每个部分的行值都相同。

【问题讨论】:

能否添加相关代码? -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section return [arrAttendanceResult count]/[arrAttendanceHeader count]; -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView if([strTeamType isEqualToString:@"Team Attendance"]) NSLog(@"HEADER COUNT: %lu",(unsigned long)[ arrAttendanceHeader 计数]);返回 [arrAttendanceHeader 计数]; -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section return [arrAttendanceHeader objectAtIndex:section]; 在 cellforatindexpath 中:TeamAttendance *objTeamAttendance = [[TeamAttendance alloc] init]; objTeamAttendance = [arrAttendanceResult objectAtIndex:indexPath.row]; 分离那些数组: NSString *strDemo=@""; for (TeamAttendance *obj in arrTeamAttendance) if(![obj.strEmpNameTeamAttendance isEqualToString:strDemo]) NSString *strName = [NSString stringWithFormat:@"%@ - %@ - %@",obj.strEmpNameTeamAttendance,obj.strEmpCodeTeamAttendance, obj.strBranchTeamAttendance]; [arrAttendanceHeader addObject:strName]; strDemo = obj.strEmpNameTeamAttendance; [arrAttendanceResult addObject:obj]; 【参考方案1】:

你必须使用这种方法来显示不同的单元格结果

  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    return _mutableArray.count;
        


    -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
    
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(5, 0, tableView.frame.size.width, heightOfSection)];
          NSDictionary *dict =   [_mutableArray objectAtIndex:section];
         NSString *useIt=   [dict objectForKey:@"CategoryName"]
       return  view;
    

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

          NSDictionary *dict =   [_mutableArray objectAtIndex:section];

        NSArray *array= [dict objectForKey:@"FontNames"];

        return array.count;
    



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

     //   static NSString *cellIdentifier = @"Cell";

        UITableViewCell *Cell = [tableViewLocal dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];


        for (__strong UIView *view in Cell.contentView.subviews) 
            [view removeFromSuperview];
            view = nil;
        

       // [tableViewLocal setAllowsSelection:NO];

       /* UILabel *labelDetailName =[[UILabel alloc]init];

        labelDetailName.frame =CGRectMake(5, 15, 300, 40);

        NSDictionary *dict =  [_mutableArray objectAtIndex:(tableViewLocal.tag-100)];

        NSArray *arrayLocal = [dict objectForKey:@"FontNames"];


        NSString *titleName =[ [arrayLocal objectAtIndex:indexPath.item]objectForKey:@"title"];

        labelDetailName.text = titleName;

        NSString *fontName = [[arrayLocal objectAtIndex:indexPath.item] objectForKey:@"nameForSystem"];

        labelDetailName.font = [UIFont fontWithName:fontName size: kSystemVersion < 7.0 ? 20 : 16];

        [Cell.contentView addSubview:labelDetailName];  */







        NSDictionary *dict = [_mutableArray objectAtIndex:(tableViewLocal.tag-100)];
        NSArray *Array =  [dict objectForKey:@"FontNames"];


        NSString *localString = [Array objectAtIndex:indexPath.row];  // use it

    

【讨论】:

以上是关于UITableviewCell 行和标题是两个不同的数组的主要内容,如果未能解决你的问题,请参考以下文章

两个 UIViewController 的不同 UITableView 中的一个自定义 UITableViewCell

在ios 7中,UITableViewCell Accessory DetailDisclosureButton分为两个不同的附件按钮

Oracle 10g 从两个不同的行和列聚合成一行

UITableViewCell 在编辑模式下移动时显示两个不同的项目

两个 UITableViewCell 具有相同的约束,但在 Interface Builder 中显示不同

如何配置 cellForRowAtIndexPath 以处理两种不同的自定义 UITableViewCell 类型