board [i]是我以程序方式创建的UIButtons数组,我无法为UIControlStateHighlighted更改其图像:
[board[i] setImage:[UIImage imageNamed:@"block"] forState:UIControlStateNormal];
[board[i] setImage:[UIImage imageNamed:@"blockPressed"] forState:UIControlStateHighlighted];
当我在模拟器中用鼠标按下按钮时,图像不会改变。我认为这是一个非常noob的问题,但我不知道代码不起作用。
答案 0 :(得分:1)
以编程方式添加按钮时执行以下操作:
添加每个目标。
提供从0开始计数的所有按钮。
将UserInteraction设置为true
setBackgroundImage:[UIImage imageNamed:@“blockPressed.png”] forState:UIControlStateHighlighted如果你想要按钮高亮
现在按下按钮为所有按钮调用相同的方法:例如
-(void)ButtonTouched:(id)sender
{
UIButton *btntouched = sender;
NSLog(@"%@", btntouched);
[btntouched setBackgroundImage:[UIImage imageNamed:@"blockPressed.png"] forState:UIControlStateHighlighted];// it can be forState:UIControlStateNormal also
}
答案 1 :(得分:0)
我认为你没有触发突出显示的状态。这可能是因为它们未设置为启用了交互。或者您设置按钮的方式还有其他缺失。
您可以尝试的另一件事是在触摸它们时为每个按钮添加一个选择器,然后通过引用选择器功能的发送者来更改图像。
答案 2 :(得分:0)
假设您确定图片未返回nil
,则此代码应该有效:
[myUIButton setImage:[UIImage imageNamed:@"myHighlightedButtonImage.png"] forState:UIControlStateHighlighted];
如果您在viewDidLoad()
中调用该行,它应该可以找到。