[ios] 프로그래밍 방식으로 버튼 클릭 이벤트를 발생 시킵니까?

프로그래밍 방식으로 버튼 클릭 이벤트를 발생시키는 방법이 있습니까? UIView에 버튼이 있으며 특정 시나리오에서는 사용자가 수동으로하지 않고 코드를 통해 버튼을 클릭하고 싶습니다. iOS 개발이 가능합니까? 당신의 제안을 제공하고 그 방법을 알려주세요.

감사.



답변

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는 내가 만든 방법입니다.


답변