有没有办法以编程方式“点击”UIControls,如段按钮?

时间:2012-01-13 05:59:08

标签: objective-c

我希望我的问题的答案可能对很多开发人员有用,并担心这是一个非常愚蠢的问题:我有一个例程,以图形方式和编程方式以5种不同的方式洗牌(包括剪切和交易)。这是通过UISegmentControl实现的,取代了5按钮模态警报。这一切都运行良好,但问题是:当计算机轮到我处理时,我在for循环中构建了一个for循环,以随机数次触发随机数生成的调用图形例程的调用< 10.在屏幕上显示任何图形之前,似乎对整个for循环集执行所有调用。然后我看到面朝下,面朝上的卡片在屏幕上移动。迷幻,对吧?似乎我的控制循环逻辑正在执行而没有阻塞或等待或序列化图形。请记住,当用户一次点击一个片段时,图形工作正常。我一直在考虑实现一个UITouchEvent以编程方式模拟点击按钮,但我还没有找到一个例子。是否有可能以编程方式“点击”段“按钮”?

1 个答案:

答案 0 :(得分:6)

你可以这样做:

- (void)simulateButtonPressed {
    [button sendActionsForControlEvents:UIControlEventTouchDown];
    button.highlighted = YES;
    [NSTimer scheduledTimerWithTimeInterval:0.3 target:self selector:@selector(simulateButtonTimeElapsed:) userInfo:nil repeats:NO];
}

- (void)simulateButtonTimeElapsed:(NSTimer *)timer {
    button.highlighted = NO;
    [button sendActionsForControlEvents:UIControlEventTouchUpInside];
}
相关问题