我正在尝试
UITableView in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
使用在 viewDidLoad 方法中初始化的数组填充方法。
self.questionsArray = [NSArray arrayWithObjects:@"Q1",@"Q2",@"Q3",@"Q4",@"Q5",@"Q6",@"Q7",@"Q8",@"Q9",@"Q7",@"Q8",@"Q9",@"Q10",@"Q11"];
我了解如何实现各个部分并重用带有标识符的单元格。正如我见过的大多数例子一样,我尝试过 question.text = [NSString stringWithFormat:@"%d. %@", indexPath.row ,[self.questionsArray objectAtIndex:indexPath.row]];
但我越来越喜欢 0. Q1 1. Q2 2. Q3 3. Q4 4. Q5 5. Q6 0. Q1 2. Q2 ....
请帮助将所有问题(NSString)加载到我的 TableView。我搞砸了 indexPath.row。它非常难以理解。有关有效处理 indexPath 的最佳实践的任何提示。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
switch (section) {
case 0:
return [self.questionsArray count];
case 1:
return 1;
default:
return 0;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
static NSString *QuestionCellIdentifier = @"QuestionCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:QuestionCellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"QuestionCell" owner:self options:nil];
}
cell = questionCell; // IBoutlet
self.questionCell = nil;
}
question.text = [NSString stringWithFormat:@"%d. %@", indexPath.row ,[self.questionsArray objectAtIndex:indexPath.row]];
return cell;
}
else if (indexPath.section == 1){
static NSString *CustomCellIdentifierMore = @"CustomCellIdentifierMore";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CustomCellIdentifierMore];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CustomCellIdentifierMore] autorelease];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
switch (indexPath.row) {
case 0:
cell.textLabel.text=@"Select";
break;
default:
break;
}
}
return cell;
}
return nil;
}