I drag 2 IBA行动 from a UIButton
,第一个是 touchDown 事件,第二个是拖动 Inside。
- (IBAction)clickButton:(UIButton *)sender {
NSLog(@"Click Button");
}
- (IBAction)dragInsideButton:(UIButton *)sender {
NSLog(@"Drag Button");
}
但是当我向内拖动时,touchDown 操作也会被触发。
如何在拖动时禁用 touchDown 事件。
Thanks!
我已经使用拖动事件解决了这样的问题
在 .xib 文件中或以编程方式将事件添加到按钮。
以编程方式是:
[mybut addTarget:self action:@selector(dragBegan:withEvent: )
forControlEvents: UIControlEventTouchDown];
[mybut addTarget:self action:@selector(dragMoving:withEvent: )
forControlEvents: UIControlEventTouchDragInside];
[mybut addTarget:self action:@selector(dragEnded:withEvent: )
forControlEvents: UIControlEventTouchUpInside |
UIControlEventTouchUpOutside];
事件的定义是:
- (void) dragBegan: (UIButton *) c withEvent:ev
{
NSLog(@"dragBegan......");
count=NO;//bool Value to decide the Down Event
c.tag=0;
[self performSelector:@selector(DownSelected:) withObject:mybut afterDelay:0.1];
//user must begin dragging in 0.1 second else touchDownEvent happens
}
- (void) dragMoving: (UIButton *) c withEvent:ev
{
NSLog(@"dragMoving..............");
c.tag++;
}
- (void) dragEnded: (UIButton *) c withEvent:ev
{
NSLog(@"dragEnded..............");
if (c.tag>0 && !count)
{
NSLog(@"make drag events");
}
}
-(void)DownSelected:(UIButton *)c
{
if (c.tag==0) {
NSLog(@"DownEvent");
count=YES;//count made Yes To interrupt drag event
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)