好的,所以我有一个我正在构建的应用程序,几乎已经完成了。我只是遇到一个问题,当我按下我的按钮时会发出声音并且按钮的图像会发生变化。然而,图像仅在被触摸或“突出显示”时改变,并且我希望按钮图像在声音效果的持续时间内保持改变,然后在声音效果之后我希望它恢复到原始图像。无论如何我可以为“突出显示”选项设置UIButton“设置时间”或什么?
我有时感到很尴尬,因为我似乎被这些最微不足道的东西绊倒了,当我处理核心编码非常好并且在一天之内接近完成一个完整的应用程序时,这是我的第一个应用程序而且我'我仍然是XCode的新手。我真的很感谢这个社区的帮助任何推动我前进的答案总是受到赞赏!
我为我的问题格式化而道歉,我在iPhone上输入了这个格式我希望它不是太笨拙或缺乏细节。如果有人需要更多细节,请问!
答案 0 :(得分:3)
将图像放入XIB中按钮的属性选择图像中并按下
[(UIButton *)[self.view viewWithTag:buttonTag] setSelected:Yes];
答案 1 :(得分:1)
可能会有所帮助
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"]
forState:UIControlStateHighlighted];
如果这不成功,则使用下面的状态之一
UIControlStateNormal ,
UIControlStateHighlighted ,
UIControlStateDisabled ,
UIControlStateSelected ,
UIControlStateApplication ,
UIControlStateReserved .
答案 2 :(得分:0)
您可以使用声音播放器的某些委托方法切换声音效果的背景图像。完成播放声音后,请更改背面图像。
e.g。
-(void) musicDidFinishPlaying
{
[btn setBackgroundImage:[UIImage imageNamed:@"normalImage.png"]
forState:UIControlStateNormal];
}
-(IBAction) buttonClicked:(id)sender
{
[btn setBackgroundImage:[UIImage imageNamed:@"soundImage.png"]
forState:UIControlStateNormal];
}
答案 3 :(得分:0)
1.您不希望在突出显示和选定状态下反映任何图像。所以你只需要为所有状态添加相同的图像,如
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"]
forState:UIControlStateNormal];
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"]
forState:UIControlStateHighlighted];
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"]
forState:UIControlStateSelected];
2.如果你想在声音停止时间改变图像而不是make
[btnClear setBackgroundImage:[UIImage imageNamed:@"red_button.png"]
forState:UIControlStateNormal];
[btnClear setBackgroundImage:[UIImage imageNamed:@"red_button.png"]
forState:UIControlStateHighlighted];
[btnClear setBackgroundImage:[UIImage imageNamed:@"red_button.png"]
forState:UIControlStateSelected];
再次按下按钮,您只需使用第一个切换图像。