在我的UITableView中,我有多个带有日期标题的部分。 日期按NSMutableArray中的日期排序。 我的部分显示正确的日期,工作正常,numberofrowsinnsection工作正常。 对于单元格文本标签,我得到了NSMutableArrays,它们按照与排序日期相同的顺序排序。 如何获取相应日期(部分)的正确文本标签? 使用indexpath.section,它仅在节中有1行时才有效。当我在一个部分中有2行或更多行时,文本标签的值不正确。 我知道这可以用字典来完成,但我找不到解决方案。
@property NSMutableArray *dateArray; //date for my sections
@property NSMutableArray *hoursArray; //hours for cells textlabel
我的部分
"January 2014",
"April 2014",
"June 2014"
我的工作时间:
"1",
"2",
"3",
/////////// EDIT
当我使用时 Cell.textlabel.text = [hoursarray objectatindex:indexpath.row] 它总是从每个部分的索引0开始。
当我使用时 Cell.textlabel.text = [hoursarray objectatindex:indexpath.section] 当每个部分只有1行时,它具有正确的排序。 但是当一个部分中有更多行时,顺序是错误的
答案 0 :(得分:1)
您必须创建已排序的数据源,因此只需创建rowArray的sectionArray然后相应地使用它。 然后你可以像这样使用它:
Cell.textlabel.text = [[sectionArray objectatindex:indexpath.section] objectAtIndex:indexpath.row];
现在您只需要管理数据源。
<强>更新:强> 您可以像这样创建2D数组
NSMutableArray *dateArray = [[NSMutableArray alloc] init];
for(int i=0; i<=dateData.length; i++)
{
NSMutableArray *hoursArray = [[NSMutableArray alloc] init];
for(int j=0; j<=hoursData.length; j++)
{
[hoursArray addObject:yourObject];
}
[dateArray addObject:hoursArray];
}
这只是一个例子,但您可以根据需要进行优化。