Answers:
有点像Ken的答案,但更为灵活,因为如果您更改或添加多个按钮,它将跟踪按钮的实际操作。
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
我遇到了与上述相同的问题。我本来可以发表评论,但是我的声誉还不够高。因此,我将发布完整答案:
[btn setHighlighted:YES];
[btn sendActionsForControlEvents:UIControlEventTouchUpInside];
[btn performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.25];
这将以编程方式按下按钮,并在看似正常的时间内突出显示它。Richie的建议不起作用,因为仅在不知不觉的时间内突出显示了按钮(如果有的话)。
为什么不仅仅执行用户按下按钮时执行的代码?
-(void)myMethod
{
// do stuff
}
-(IBAction)myButtonClick:(id)sender
{
[self myMethod];
}
-(void)clickMyButton
{
[self myMethod];
// OR
[self myButtonClick:nil];
}
如果您要谈论的是UIButton,则只需调用与UIButton调用时相同的方法即可。例如:
[self myButtonsTargetMethod];
是,
[_button setHighlighted:YES];
[_button sendActionsForControlEvents:UIControlEventTouchUpInside];
[_button setHighlighted:NO];
但是这里的问题是您将无法看到那些事件,因为它太快了。因此,您可以使用NSTimer尝试上面的代码。
NSTimer *quick = [NSTimer scheduledTimerWithTimeInterval:2.5 target:self selector:@selector(MeFirst:) userInfo:nil repeats:NO];
MeFirst是我创建的方法。
button.showsTouchWhenHighlighted = YES
像实际触摸一样突出显示按钮?