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]];
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;
}