カスタム クラスを作成し、すべてのテキストの色を黒に設定しました。行を選択した後、行の内容のテキストの色を緑に変更しました。左スワイプ ジェスチャ イベントで、再びテーブルをリロードしましたが、以前に選択した行のテキストの色が黒に戻りません。テーブルのリロード後も緑色のままですが、テキスト値が変化しています。色が黒に戻らない理由
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger rows=indexPath.row;
if(rows==2||rows==3||rows==4)
{
UIImageView *localImageView=(UIImageView*)[self.view viewWithTag:rows];
localImageView.image=[UIImage imageNamed:@"check"];
UILabel *localLabel=(UILabel*)[self.view viewWithTag:rows+100];
Question *question=[[Question alloc]init];
question=[self.questionsArray objectAtIndex:self.currentQuestionIndex];
if([localLabel.text isEqualToString:question.correctOptionText])
{
localLabel.textColor=[UIColor greenColor]; //changed color here
}
else{
localLabel.textColor=[UIColor redColor];
}
}
}
カスタム クラス コード
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
UIImageView *localCheckImageView=[[UIImageView alloc]initWithFrame:CGRectMake(45, 10, 25, 25)];
localCheckImageView.image=[UIImage imageNamed:@"dot"];
self.checkImageView=localCheckImageView;
[self.contentView addSubview:self.checkImageView];
UILabel *localOptionLabel=[[UILabel alloc]initWithFrame:CGRectMake(95, 0, 200, 44)];
[localOptionLabel setBackgroundColor:[UIColor clearColor]];
[localOptionLabel setFont:[UIFont systemFontOfSize:18.0f]];
[localOptionLabel setTextColor:[UIColor blackColor]];
self.optionLabel =localOptionLabel;
[self.contentView addSubview:self.optionLabel];
[localCheckImageView release];
[localOptionLabel release];
}
return self;
}
cellforRow コード
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
Question *question=[[Question alloc]init];
question=[self.questionsArray objectAtIndex:self.currentQuestionIndex];
//UITableViewCell *cell=[[UITableViewCell alloc]init];
NSInteger rows=[indexPath row];
static NSString *rowZeroCellIdentifier = @"rowZero";
static NSString *rowOneCellIdentifier=@"rowOne";
static NSString *rowRemainingCellIdentifier=@"rowRemaining";
if(rows==0)
{
QuesNumberCell *cell =(QuesNumberCell *)[tableView dequeueReusableCellWithIdentifier:rowZeroCellIdentifier];
if (cell == nil)
{
cell = [[QuesNumberCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:rowZeroCellIdentifier];
}
cell.questionNumberLabel.text = [NSString stringWithFormat:@"Question: %i",question.questionNumber];
return cell;
}
else if(rows==1)
{
QuestionTextCell *cell=(QuestionTextCell *)[tableView dequeueReusableCellWithIdentifier:rowOneCellIdentifier];
if (cell == nil)
{
cell = [[QuestionTextCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:rowOneCellIdentifier];
}
if(_explainButtonFlag==1)
{
cell.questionTextView.text = [NSString stringWithFormat:@"%@",question.questionText];
}
else
{
cell.questionTextView.text = [NSString stringWithFormat:@"%@",question.explanationText];
}
return cell;
}
else{
OptionsCell *cell=(OptionsCell *)[tableView dequeueReusableCellWithIdentifier:rowRemainingCellIdentifier];
if (cell == nil)
{
cell = [[OptionsCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:rowRemainingCellIdentifier];
}
if(rows==2)
{
cell.optionLabel.text = [NSString stringWithFormat:@"%@",question.optionOneText];
}
if(rows==3)
{
cell.optionLabel.text = [NSString stringWithFormat:@"%@",question.optionTwoText];
}
if(rows==4)
{
cell.optionLabel.text = [NSString stringWithFormat:@"%@",question.optionThreeText];
}
//[cell setSelected:NO animated:NO];
[cell.checkImageView setTag:indexPath.row];
[cell .optionLabel setTag:indexPath.row+100];
return cell;
}