我有一个范围滑块UIControl类。在拖动时,为每个值调用report
方法。我只希望在用户完成拖动时调用一次report
方法。我被困在这段代码中请帮助。
[slider addTarget:self action:@selector(report:) forControlEvents:UIControlEventValueChanged];
获取更多信息 Range Slider WebService Call
答案 0 :(得分:3)
$(function () {
$.datepicker.setDefaults($.datepicker.regional['en']);
$('.trans_date').datepicker({
dateFormat: 'dd/mm/yy',
altField: '#transaction_date',
altFormat: '@',
firstDay: 1,
changeYear: true,
changeMonth: true,
onSelect:function(){
alert(new Date(parseInt($("#transaction_date").val(), 10)));
}
});
});
具有UISlider
属性。将其设置为continuous
,只有当用户抬起手指时才会收到回叫。 From the documentation:
如果
NO
,滑块会连续向相关联的人发送更新事件 目标的行动方法。如果YES
,则滑块仅发送操作事件 当用户释放滑块的拇指控件以设置最终时 值。此属性的默认值为
NO
。
答案 1 :(得分:0)
[slider addTarget:self action:@selector(report :) forControlEvents:UIControlTouchUpInside];
答案 2 :(得分:0)
所以,正如你自己在下面所说的那样(在一个非常简短的回答' :)),你可能想要捕捉事件UIControlEventTouchUpInside
,它是在你的touchesEnded方法中发送的控制:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
[self sendActionsForControlEvents:UIControlEventTouchUpInside];
trackingSlider = nil; //we are no longer tracking either slider
}
所以你可能想改变
[slider addTarget:self action:@selector(report:) forControlEvents:UIControlEventValueChanged];
到
[slider addTarget:self action:@selector(report:) forControlEvents:UIControlEventTouchUpInside];
我还没有对它进行测试,但我认为这应该是要走的路......
与此同时,我已经对它进行了测试,这是可行的方法。得到一些正确答案的赞成票会很好,我不能等到最后能够对其他人的答案发表评论:))