我使用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];
提前致谢。
答案 0 :(得分:0)
UIControlEventTouchUpInside
消息由DCRoundSwitch
的{{1}}方法发送。因此,需要调用此方法,以便您的交换机接收消息以触发您的操作。这不会发生,因为touchesEnded
正在发送touchesCancelled
- 当他们识别出他们的手势时,他们会自动取消对其他视图的触摸。如果您在创建UIGestureRecognizer
并使用其UIGestureRecognizer
属性将其附加到交换机(在DCRoundSwitch
的设置方法中)时关闭此行为,则会允许touchesEnded发送{向您的交换机发送{1}}消息,以便可以触发您的操作。
希望这有帮助。
//注意:如果您的目标操作要运行某些动画,则需要对cancelsTouchesInView
进行一些进一步的更改,以防止它阻止您的动画。有关详细信息,请参阅this SO answer