2013-04-09 101 views
0

点击按钮我正在更改背景图片。这只是停留在突出显示的状态。我想在点击按钮后保留绿色/红色背景图像。触摸按钮时设置背景图片

如何在我的代码中执行此操作?对不起,我是新手...

- (void)setCorrectAndWrongAnswerBackgroundImagesForOptions 
{ 
int correctAns = [[currentQuestionDict objectForKey:kQuizAnswer] intValue]; 
int i; 
int count = [_optionsButtonsArray count]; 
for (i=0; i<count; i++) 
{ 
    UIButton* optionButton = [_optionsButtonsArray objectAtIndex:i]; 
    NSString* optionBgImageName = [NSString stringWithFormat:@"optionBg_default%d",(i+1)]; 
    NSString* optionBgRedImageName = [NSString stringWithFormat:@"optionBg_red%d",(i+1)]; 
    NSString* optionBgGreenImageName = [NSString stringWithFormat:@"optionBg_green%d",(i+1)]; 

    if (optionButton.tag == correctAns) 
    { 
     [optionButton setBackgroundImage:[UIImage imageNamed:[HAUtilities resourceNameForString:optionBgImageName]] forState:UIControlStateNormal]; 

     [optionButton setBackgroundImage:[UIImage imageNamed:[HAUtilities resourceNameForString:optionBgGreenImageName]] forState:UIControlStateHighlighted]; 


    } 
    else { 
     [optionButton setBackgroundImage:[UIImage imageNamed:[HAUtilities resourceNameForString:optionBgImageName]] forState:UIControlStateNormal]; 
     [optionButton setBackgroundImage:[UIImage imageNamed:[HAUtilities resourceNameForString:optionBgRedImageName]] forState:UIControlStateHighlighted]; 


    } 
} 

}

回答

0

你可以做这样的事情在选项按钮选择

dispatch_async(dispatch_get_main_queue(), ^{ 
    [sender setHighlighted:YES]; 
}); 

这将使选项按钮高亮显示状态保持,直到你把它设置为NO再次。

0

您想在正在更改突出显示状态的时刻改变正常状态的颜色。

如下更改代码:

- (void)setCorrectAndWrongAnswerBackgroundImagesForOptions 
{ 
int correctAns = [[currentQuestionDict objectForKey:kQuizAnswer] intValue]; 
int i; 
int count = [_optionsButtonsArray count]; 
for (i=0; i<count; i++) 
{ 
    UIButton* optionButton = [_optionsButtonsArray objectAtIndex:i]; 
    NSString* optionBgImageName = [NSString stringWithFormat:@"optionBg_default%d",(i+1)]; 
    NSString* optionBgRedImageName = [NSString stringWithFormat:@"optionBg_red%d",(i+1)]; 
    NSString* optionBgGreenImageName = [NSString stringWithFormat:@"optionBg_green%d",(i+1)]; 

    if (optionButton.tag == correctAns) 
    { 
     [optionButton setBackgroundImage:[UIImage imageNamed:[HAUtilities resourceNameForString:optionBgGreenImageName]] forState:UIControlStateNormal]; 

    } 
    else { 

     [optionButton setBackgroundImage:[UIImage imageNamed:[HAUtilities resourceNameForString:optionBgRedImageName]] forState:UIControlStateNormal]; 

    } 
} 

} 
0

在你的故事板时,选择按钮,在右侧栏中的是“突出”的选项下拉菜单。点击此按钮并设置突出显示(选中)时按钮所需的属性,如不同的背景图像。