嗨,我有三个NSMutableArray
。例如,数组 - a,b c。假设所有3个数组的大小都是3。
想问一下如何创建3节,每节包含3行(根据数组的数量)。在每个部分中,第一行来自a,第二行来自b,第三行来自c
1st Section:
[a objectAtIndex:1]
[b objectAtIndex:1]
[c objectAtIndex:1]
2nd Section:
[a objectAtIndex:2]
[b objectAtIndex:2]
[c objectAtIndex:2]
3rd Section:
[a objectAtIndex:3]
[b objectAtIndex:3]
[c objectAtIndex:3]
谢谢!
答案 0 :(得分:2)
创建另一个数组并将a,b,c数组推入其中
NSArray container =@[a,b,c];
在你的tableview cellforRow
中
使用container[indexPath.row][indexPath.section]
答案 1 :(得分:0)
您可以将所有数组(a,b,c)放到另一个充当容器的数组中。从该容器中选择元素,如下所示:container[rowIndex][sectionIndex]
。另请注意每个部分的设置编号:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
//should return number of arrays in container
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
//this should return number of elements corresponding to each section
Those methods是UITableViewDataSource Protocol
的一部分答案 2 :(得分:0)
试试这段代码 在.h文件中
#import <UIKit/UIKit.h>
@interface ArrayViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
NSMutableArray *ivContentsList;
}
// Properties
@property (nonatomic, retain) NSMutableArray *contentsList;
.m文件
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *firstSection = [NSArray arrayWithObjects:@"one", @"two", nil];
NSArray *secondSection = [NSArray arrayWithObjects:@"three", @"four", @"five", nil];
NSArray *thirdSection = [NSArray arrayWithObject:@"six"];
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:firstSection, secondSection, thirdSection, nil];
[self setContentsList:array];
[array release], array = nil;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSInteger sections = [[self contentsList] count];
return sections;
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
NSArray *sectionContents = [[self contentsList] objectAtIndex:section];
NSInteger rows = [sectionContents count];
return rows;
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *sectionContents = [[self contentsList] objectAtIndex:[indexPath section]];
NSString *contentForThisRow = [sectionContents objectAtIndex:[indexPath row]];
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[[cell textLabel] setText:contentForThisRow];
return cell;
}
答案 3 :(得分:0)
您可以尝试使用NSmutableDictionary:
NSMutableDictionary *myDict = [[NSMutableDictionary alloc] init];
[myDict setObject:Array1 forKey:@"Section1"];
[myDict setObject:Array2 forKey:@"Section2"];
[myDict setObject:Array3 forKey:@"Section3"];
NSLog(@"Result %@",myDict);
现在您可以使用此词典配置单元格。