일부 컨트롤을 보여주는 tableView가 있습니다. UIButton.i에서 올바른 ans에 대한 옵션과 마찬가지로 올바른 배경으로 버튼 배경 이미지를 변경하고 click 이벤트에서 잘못된 ans를 변경할 수 있습니다. 어떤 사람이 내게 아이디어를 줄 수 있습니까? 내가 같은 배경 이미지 변경하려고 :UIButton 배경 이미지 클릭 변경시
[cell.ansBtn2 setImage:[UIImage imageNamed:@"option_red.png"] forState:UIControlStateSelected];
과 내가 같은 backgound에 설정 한 :
-(void) btnAction:(id) sender {
NSString *str =((UIButton*)sender).titleLabel.text;
NSLog(@"%@",str);
NSLog(@"%@",[dictionary objectForKey:@"option3"]);
correctAns=[dictionary objectForKey:@"answer"];
if(str==[dictionary objectForKey:@"option1"])
{
[email protected]"1";
if ([selectedAns compare:correctAns]==NSOrderedSame)
{
[cell.ansBtn1 setBackgroundImage:[UIImage imageNamed:@"option_green.png"] forState:UIControlStateHighlighted];
NSLog(@"this is correct");
countCorrect++;
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
else
{
[cell.ansBtn1 setBackgroundImage:[UIImage imageNamed:@"option_red.png"] forState:UIControlStateHighlighted];
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
}
else if(str==[dictionary objectForKey:@"option2"])
{
[email protected]"2";
if ([selectedAns compare:correctAns]==NSOrderedSame)
{
[cell.ansBtn2 setBackgroundImage:[UIImage imageNamed:@"option_green.png"] forState:UIControlStateHighlighted];
NSLog(@"this is correct");
countCorrect++;
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
else
{
[cell.ansBtn2 setBackgroundImage:[UIImage imageNamed:@"option_red.png"] forState:UIControlStateHighlighted];
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
}
else if(str==[dictionary objectForKey:@"option3"])
{
[email protected]"3";
NSLog(@"selected ans is %@",selectedAns);
NSLog(@"correct ans is %@",correctAns);
if ([selectedAns compare:correctAns]==NSOrderedSame)
{
[cell.ansBtn3 setBackgroundImage:[UIImage imageNamed:@"option_green.png"] forState:UIControlStateHighlighted];
NSLog(@"this is correct");
countCorrect++;
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
else
{
[cell.ansBtn3 setBackgroundImage:[UIImage imageNamed:@"option_red.png"] forState:UIControlStateHighlighted];
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
}
else if(str==[dictionary objectForKey:@"option4"])
{
[email protected]"4";
NSLog(@"selected ans is %@",selectedAns);
NSLog(@"correct ans is %@",correctAns);
if ([selectedAns compare:correctAns]==NSOrderedSame)
{
[cell.ansBtn4 setBackgroundImage:[UIImage imageNamed:@"option_green.png"] forState:UIControlStateHighlighted];
countCorrect++;
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
else
{
[cell.ansBtn4 setBackgroundImage:[UIImage imageNamed:@"option_red.png"] forState:UIControlStateHighlighted];
cell.lblRating.text=[NSString stringWithFormat:@"%i", countCorrect];
}
}
else {
NSLog(@"ERROR");
}
reloader++;
if (reloader>=[QuestionMutableArray count]) {
NSString *str=[self GetSkill];
NSString *totalTime=[NSString stringWithFormat:@"%i . %i minutes",7-timeMin,60-timeSecond];
NSString *str2=[NSString stringWithFormat:@"Game Over :\n Knowlwdge Level : %@ \n Total Correct Answer :%i \n Total Time : %@ \n Total Question Answered : %i \n",str,countCorrect,totalTime,reloader];
appAlert=[[UIAlertView alloc]initWithTitle:@"Game Over :\n" message:str2
delegate:self cancelButtonTitle:@"Exit" otherButtonTitles:nil];
[appAlert addButtonWithTitle:@"PlayAgain"];
UIImage *alertBoxImage = [UIImage imageNamed:@"first_look.jpg"];
UIImageView *_backgroundImageView = [[UIImageView alloc] initWithImage:alertBoxImage];
_backgroundImageView.frame = CGRectMake(0, 0, 282, 220);
_backgroundImageView.contentMode = UIViewContentModeScaleToFill;
[appAlert addSubview:_backgroundImageView];
[appAlert sendSubviewToBack:_backgroundImageView];
[appAlert show];
[dictionary release];
[QuestionMutableArray release];
countCorrect=0;
}
else {
dictionary=[QuestionMutableArray objectAtIndex:reloader];
[self.tableView reloadData];
}
}
문제가 여기
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"BeginingCell";
cell=(BeginingCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"BeginingCell" owner:self options:nil ];
for(id CurrentObject in topLevelObjects)
{
if ([CurrentObject isKindOfClass:[BeginingCell class]]) {
cell=(BeginingCell *) CurrentObject;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
break;
}
}
}
if(indexPath.row==0)
{
imageURL=[dictionary objectForKey:@"questionImage"];
NSURL *url = [NSURL URLWithString:imageURL];
NSData *data = [NSData dataWithContentsOfURL:(NSURL *)url];
UIImage *img = [[UIImage alloc] initWithData:data];
cell.lblScoreCurrent.text=[NSString stringWithFormat:@"%d", reloader];
[email protected]"/30";
cell.myImageView.image = img;
cell.SectionTitle.text=[dictionary objectForKey:@"question"];
cell.ansBtn1.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.ansBtn2.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.ansBtn3.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.ansBtn4.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.ansBtn1.titleLabel.textAlignment = UITextAlignmentCenter;
cell.ansBtn2.titleLabel.textAlignment = UITextAlignmentCenter;
cell.ansBtn3.titleLabel.textAlignment = UITextAlignmentCenter;
cell.ansBtn4.titleLabel.textAlignment = UITextAlignmentCenter;
[cell.ansBtn1 setTitle:[dictionary objectForKey:@"option1"] forState:UIControlStateNormal];
[cell.ansBtn2 setTitle:[dictionary objectForKey:@"option2"] forState:UIControlStateNormal];
[cell.ansBtn3 setTitle:[dictionary objectForKey:@"option3"] forState:UIControlStateNormal];
[cell.ansBtn4 setTitle:[dictionary objectForKey:@"option4"] forState:UIControlStateNormal];
[cell.ansBtn1 addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
[cell.ansBtn2 addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
[cell.ansBtn3 addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
[cell.ansBtn4 addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
}
return cell;
}
을 그리고 클릭 이벤트입니다 나는 배경을 변경하지 처음 버튼을 클릭하고 있습니다.하지만 다음 클릭에서 변경 논리 (녹색/빨강 변경 뜻)에 따라 변화를 받고 있는데 ... 내가 어떻게해야합니까 그의 케이스. 해결책은 무엇입니까?
또한 compare :를 사용하여 문자열을 비교하십시오 – Robin
예 i kno that ... –
== 연산자로 두 문자열을 비교하는 것이 잘못된 이유는 무엇입니까? –