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分为两个不同的附件按钮
UITableViewCell 在编辑模式下移动时显示两个不同的项目