2012-01-13 7 views
1

私の質問に対する答えは、多くの開発者にとって有益であり、本当にばかげた疑問であることを恐れていることを願っています。カードを5つの異なる方法で切り刻むというルーチンがあります。 5ボタンモーダルアラートの代わりにUISegmentControlから実装されています。これはすべてうまくいきますが、ここでは問題があります。コンピュータの処理のときにforループ内にforループを構築して乱数を発生させ、シャッフルグラフィックルーチンへの呼び出しを乱数で実行します< 10.すべてグラフィックスが画面に表示される前に、for-loopsセット全体に対してコールの実行が行われているように見えます。それから、私はフェイスダウンを見て、上に向かってカードが画面の上を動く。サイケデリック、そうですか?私のコントロールループロジックは、グラフィックスをブロックしたり、待ったり、シリアル化したりせずに実行されているようです。ユーザーが一度に1つのセグメントをタップしているときは、グラフィックスが正常に機能することに注意してください。私はUITouchEventを実装してボタンをタップすることをプログラム的にシミュレートすることを検討していましたが、1つの例は見つかりませんでした。セグメント "ボタン"をプログラムで「タップ」することは可能ですか?あなたが何かを行うことができますセグメントボタンなどのUIControlをプログラムで「タップ」する方法はありますか?

+1

を...私はディスプレイをリフレッシュする方法を検討したいです。運が良かった。セグメント化されたコントロールの –

答えて

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]; 
} 
+4

を実行することができます。 'segmentedControl.selectedSegmentIndex = 1; //(または任意のインデックス) [segmentedControl sendActionsForControlEvents:UIControlEventValueChanged]; ' –

+0

Fantastic! -sendActionsForControlEventsは完全に機能します – quantum

関連する問題