1

图片

board[i] 是我以编程方式创建的 UIButton 数组,我无法为 UIControlStateHighlighted 更改它们的图像:

    [board[i] setImage:[UIImage imageNamed:@"block"] forState:UIControlStateNormal];
    [board[i] setImage:[UIImage imageNamed:@"blockPressed"] forState:UIControlStateHighlighted];

当我在模拟器中用鼠标按下按钮时,图像不会改变。我认为这是一个非常菜鸟的问题,但我不知道代码不起作用。

4

3 回答 3

1

以编程方式添加按钮时,请执行以下操作:

  1. 添加每个相同的目标。

  2. 提供从 0 到计数的标记所有按钮。

  3. 将 UserInteraction 设置为 true

  4. 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
}
于 2012-08-21T10:40:04.767 回答
0

我认为您没有触发突出显示的状态。这可能是因为它们未设置为启用交互。或者您设置按钮的方式还缺少其他内容。

您可以尝试的另一件事是在每个按钮被触摸时添加一个选择器,然后通过为选择器功能引用发送者来更改图像。

于 2012-08-21T10:38:24.827 回答
0

假设您已确保您的图像不返回nil,则此代码应该可以工作:

[myUIButton setImage:[UIImage imageNamed:@"myHighlightedButtonImage.png"] forState:UIControlStateHighlighted];

如果您在viewDidLoad().

于 2014-05-28T20:50:44.797 回答