0

好的,我正在构建一个几乎完成的应用程序。我只是遇到了一个问题,当我按下按钮时它会发出声音并且按钮的图像会发生变化。然而,图像只有在被触摸或“突出显示”时才会改变,我希望按钮图像在音效持续时间内保持变化,然后在音效之后我希望它恢复到原始图像。无论如何我可以为“突出显示”选项设置 UIButton“设置时间”或其他内容吗?

有时我感到很尴尬,因为我似乎被这些最琐碎的事情绊倒了,当我处理核心编码异常出色并在几天内完成一个完整的应用程序时,但这是我的第一个应用程序,我仍然是XCode 的新手。我非常感谢这个社区的帮助,任何推动我前进的答案都会受到赞赏!

对于我在 iPhone 上输入的问题格式,我进一步道歉我希望它不会太尴尬或缺乏细节。如果有人需要更多详细信息,请询问!

4

4 回答 4

3

将图像放入XIB中按钮的属性选择图像中并按下时

[(UIButton *)[self.view viewWithTag:buttonTag] setSelected:Yes];
于 2013-08-26T05:19:48.083 回答
1

可能会有所帮助

[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"]
                            forState:UIControlStateHighlighted];

如果这不成功,则使用以下状态之一

   UIControlStateNormal               ,
   UIControlStateHighlighted          ,
   UIControlStateDisabled             ,
   UIControlStateSelected             ,
   UIControlStateApplication          ,
   UIControlStateReserved             . 
于 2013-08-26T05:00:00.783 回答
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.现在如果你想在声音停止时改变图像而不是制作

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

再次单击按钮,您只需使用第一个切换图像。

于 2013-08-26T05:37:31.943 回答
0

您可以使用声音播放器的一些委托方法在音效上切换背景图像。播放完声音后,更改背景图像。

例如

-(void) musicDidFinishPlaying
{
[btn setBackgroundImage:[UIImage imageNamed:@"normalImage.png"]
                            forState:UIControlStateNormal];

}

-(IBAction) buttonClicked:(id)sender
{
[btn setBackgroundImage:[UIImage imageNamed:@"soundImage.png"]
                            forState:UIControlStateNormal];
}
于 2013-08-26T05:28:01.730 回答