使用UIControlEventTouchDown的UIButton,图像在手指抬起之前不会更改为选中状态

时间:2015-10-22 08:26:58

标签: ios objective-c uibutton

试着理解这个问题。我有一个带有UIControlEventTouchDown事件的UIButton调用:

- (IBAction)pressButton:(id)sender {

    NSLog(@"button pressed");

    UIButton *button = (UIButton *)sender;
    button.selected = YES;
}

我按预期立即收到消息“按下按钮”。但是,在我抬起手指之前,图像不会改变为所选图像。这没有意义,因为我按下按钮后立即将按钮设置为选中状态。我在界面构建器中为“默认”设置了我的关闭图像,在“选定”下设置了我的图像设置。我也试过为“突出显示”添加图像,这也不起作用。我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

您已在UIControlEventTouchDown设置了按钮点击事件,因此该事件将触发该按钮的TouchDown事件,并且您想要设置该图像,因此您必须设置图像{{1} }。

所以尝试像这样设置图像:

UIControlState

可能对你有帮助。

答案 1 :(得分:0)

您可以为按钮设置UIViewController *myViewController = [[FormApplicationViewController alloc] initWithNibName:@"FormApplicationviewController" bundle:nil]; 图像。在故事板中它是这样的:enter image description here

答案 2 :(得分:0)

试试这个

- (IBAction)pressButton:(id)sender {
NSLog(@"button pressed");
UIButton *button = (UIButton *)sender;
button.selected = YES;
[button setBackgroundImage:[UIImage imageNamed:@"another.png"] forState:UIControlStateNormal];
}