Ios UIControlEventTouchDown的ui按钮,赢得图像';在抬起手指之前,不要更改为“选定”
试着让我的头脑清醒过来。我有一个UIControlEventTouchDown事件的UIButton,它调用:Ios UIControlEventTouchDown的ui按钮,赢得图像';在抬起手指之前,不要更改为“选定”,ios,objective-c,uibutton,Ios,Objective C,Uibutton,试着让我的头脑清醒过来。我有一个UIControlEventTouchDown事件的UIButton,它调用: - (IBAction)pressButton:(id)sender { NSLog(@"button pressed"); UIButton *button = (UIButton *)sender; button.selected = YES; } 我得到的信息“按钮按下”立即如预期。但是,在我抬起手指之前,图像不会更改为选定的图像。这没有意义,因为我
- (IBAction)pressButton:(id)sender {
NSLog(@"button pressed");
UIButton *button = (UIButton *)sender;
button.selected = YES;
}
我得到的信息“按钮按下”立即如预期。但是,在我抬起手指之前,图像不会更改为选定的图像。这没有意义,因为我一按下按钮就将按钮设置为“已选择”。我在界面生成器中将我的关闭图像设置为“默认”,将我的打开图像设置为“选定”。我也尝试过为“突出显示”添加一个图像,但这也不起作用。我做错了什么?您可以为按钮设置突出显示的
图像。在故事板中,它是这样的:试试这个
- (IBAction)pressButton:(id)sender {
NSLog(@"button pressed");
UIButton *button = (UIButton *)sender;
button.selected = YES;
[button setBackgroundImage:[UIImage imageNamed:@"another.png"] forState:UIControlStateNormal];
}
您已经在UIControlEventTouchDown
上设置了按钮单击事件,因此该事件将在按钮的触地事件时触发,并且您希望在该事件上设置图像,因此您必须设置图像的UIControlState
所以,试着这样设置图像:
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateSelected | UIControlStateHighlighted];
这可能会对您有所帮助。可能这不起作用,因为您在UIControlEventTouchDown
事件中手动设置按钮时,有点破坏了按钮状态?尝试删除按钮。选择=是
是!就这样!然而,当我取下手指时,我想保持图像“打开”。我该怎么做?我想我的意思是每次我该如何反转图像?好吧,我做了几次,但我记不清了。。。。我认为您实际上可以将代码保留在iAction中,但不是在UIControlEventTouchUpInside
上触发此操作,而是使用UIControlEventTouchUpInside
我需要一个触摸事件。[按钮设置需要显示];?尝试了…什么都没有。虽然此代码可以回答问题,但提供有关此代码为什么和/或如何回答问题的其他上下文可以提高其长期价值。