3
일반적으로이 방법을 사용하여 이동 가능한 UIButton을 구현합니다.UIButton을 드래그 할 수 있지만 클릭 이벤트를 발생시키지 않는 방법
[button addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents:UIControlEventTouchDragInside];
하지만 동시에 touchUpInside 이벤트가 발생하며 다른 작업을 수행하려면 touchUpInside 이벤트가 필요합니다.
이렇게 누군가를 피하는 방법을 알고 있습니까?
고맙습니다.
다음 코드를 사용하여 해결하십시오.
[button addTarget:self action:@selector(touchDown:withEvent:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(touchDragInside:withEvent:) forControlEvents:UIControlEventTouchDragInside];
[button addTarget:self action:@selector(touchUpInside:withEvent:) forControlEvents:UIControlEventTouchUpInside];
- (void) touchUpInside :(UIControl*)c withEvent:ev{
NSLog(@"touch Up inside");
if (count) {
NSLog(@"here I can do something about clicking event");
}
}
- (void) touchDown:(UIControl*)c withEvent:ev{
NSLog(@"touch Down");
count = YES;
}
-(void) touchDragInside:(UIControl*)c withEvent:ev{
NSLog(@"touch drag inside");
c.center = [[[ev allTouches] anyObject] locationInView:self.view];
count = NO;
}
[해당 항목을 복사] (http://stackoverflow.com/questions/15588604/how-to-implement-two-ibactions-in-uibutton-with-overlap) 도움이 될만한 정보를 확인하십시오. –
은 그것을 비웃었다. touchUpInside 이벤트에서 플래그를 만듭니다. – zedzhao