0

DCRoundSwitch を使用してカスタム スイッチを作成しました。問題は、UIControlEventTouchUpInside イベントを呼び出せないことですが、UIControlEventValueChanged イベントだけが呼び出されます。

以下は、私がviewdidloadで書いたコードです:

self.swtchDailyReminder.on = YES;
self.swtchDailyReminder.onTintColor =[UIColor colorWithRed:47.0/255.0 green:160.0/255.0
blue:158.0/255.0 alpha:1.0];
[self.swtchDailyReminder addTarget:self action:@selector(switchDailyReminderToggled:)
forControlEvents:UIControlEventTouchUpInside];

前もって感謝します。

4

1 に答える 1

0

UIControlEventTouchUpInsideメッセージは のメソッドによって送信されますDCRoundSwitchtouchesEndedしたがって、スイッチがメッセージを受信して​​アクションをトリガーするには、このメソッドを呼び出す必要があります。touchesCancelledは によって送信されているため、これは発生していませんUIGestureRecognizer。ジェスチャを認識すると、他のビューへのタッチが自動的にキャンセルされます。が作成され、プロパティを使用して ( の setup メソッドで)UIGestureRecognizerスイッチにアタッチされたときにこの動作をオフにすると、 touchesEnded がそのメッセージをスイッチに送信できるようになり、アクションをトリガーできるようになります。DCRoundSwitchcancelsTouchesInViewUIControlEventTouchUpInside

お役に立てれば。

DCRoundSwitch// 注: ターゲット アクションでいくつかのアニメーションを実行する場合は、アニメーションがブロックされないように、さらに変更を加える必要があります。詳細については、この SO 回答を参照してください

于 2012-12-30T03:50:25.627 に答える