回答:
ケンの答えに似ていますが、ボタンを変更したり、複数のボタンを追加した場合にボタンの実際のアクションを追跡できるため、より柔軟です。
[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];
}
はい、
[_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
は、実際のタッチと同じようにボタンを強調表示しますか?