2013-10-02 11 views
7

私はUISwitchを使用して私のアプリで画面にサブビューを呼び出す。しかし、スイッチは約60%の時間しか働かない。私のコードをテストするために、別のIBActionにスイッチを接続してスイッチの状態をコンソールに書き込みました。両方の機能が特定の時間にスイッチの状態に応答していない、すなわち、両方の機能がスイッチの状態をある時間の間に同時に無視している。他の誰かがiOS7のUISwitchesでこの動作を経験しましたか?iOS7にUISwitchのバグがありますか?

- (IBAction)showHideSomeSubView:(UISwitch *)sender { 
if (_mySwitch.on) { 
    [self.view addSubview:someSubView]; 
} 
else { 
    [someSubVew removeFromSuperview]; 
}} 

編集:どちらのアクションがスイッチに同じように反応する

- (IBAction)switchToggled:(UISwitch *)sender { 
sender = _mySwitch; 
if ([sender isOn]) { 
    NSLog(@"On"); 
} else { 
    NSLog(@"Off"); 
}} 

同じスイッチは、次のアクションに接続されています。

+0

どのようなイベントで状態の変化に対応していますか? – Abizern

+0

コードを投稿できますか? – Woodstock

+0

@Abizern:サブビューを表示/非表示するIBAction。 – Barry

答えて

3

私はiOS 7アプリでいくつかのUISwitchesを使用していますが、値の変更操作には何の問題もありませんでした。スイッチは一貫してその値を正確に報告します。 IBのアクションからスイッチをアンフックしてから、再接続して、値変更アクションを接続していることを確認してください。

3

はい、iOS 7のiPadシミュレータのUISwitchを使用して、switchToggled:メソッドと同等の機能に1〜12回のコールバックが表示されています。最後のコールバックでは、値は実際に変更されています。以前のコールバックでは、それはありませんでした。私がやっていることは、スイッチがオンであるかどうかにかかわらずキャッシュすることです。次にswitchToggled:メソッドで、値が実際に変更されたかどうかをチェックします。それがなければ、私はコールバックを無視します。これは、ユーザーが物事を正しく動作させるようです。

問題はデバイスでも発生しますが、それほど多くはないようです。同じ回避策がそこで機能するようです。

4

私はあなたと奇妙な動作を確認!! スイッチの小さな円をドラッグするだけで、何回も呼び出されるアクションが表示されます(私の場合、最大403:D) アップルのエンジニアが意図したことは本当にわかりません。この新しい動作についてのドキュメントがあれば、BTW、見つけたら、私にも教えてください。

ありがとうございました

関連する問題