답변:
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
실제 터치와 마찬가지로 버튼이 강조 표시됩니까 ?