Відповіді:
Начебто відповідь Кена, але більш гнучка, оскільки вона буде відслідковувати фактичні дії кнопок, якщо ви змінюєте їх або додаєте більше одного.
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
У мене було те саме питання, що і вище. Я б опублікував коментар, але моя репутація недостатньо висока. Тож я замість цього опублікую повну відповідь:
[btn setHighlighted:YES];
[btn sendActionsForControlEvents:UIControlEventTouchUpInside];
[btn performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.25];
Це програмно натисне на кнопку та виділить її, здавалося б, нормальну кількість часу. Пропозиція Річі не спрацювала, оскільки кнопка була виділена (якщо вона взагалі) лише непомітна кількість часу.
Чому б не просто виконати код, який виконується, коли користувач натискає кнопку?
-(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
вона хотіла б мати фактичний штрих?