2010-06-16 60 views
2

所以我有我的應用程序工作良好,當你按下並拖動。我也有UIButtons在Interface Builder中設置爲Touch Down。touchesBegin&touchesMove Xcode對象C問題

當你拖動你需要從UIButton的外部拖動。你不能點擊UIButton並拖動到另一個。

觸及感動:

代碼:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

UITouch *touch = [[event touchesForView:self.view] anyObject]; 
CGPoint location = [touch locationInView:touch.view]; 

if(CGRectContainsPoint(oneButton.frame, location)) 
{ 
    if (!oneButton.isHighlighted){ 
     [self oneFunction]; 
     [oneButton setHighlighted:YES]; 
    } 
}else { 
    [oneButton setHighlighted:NO]; 
} 
// 
if(CGRectContainsPoint(twoButton.frame, location)) 
{ 
    if (!twoButton.isHighlighted){ 
     [self twoFunction]; 
     [twoButton setHighlighted:YES]; 
    } 
}else { 
    [twoButton setHighlighted:NO]; 
} 

}

倒是開始:

代碼:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

    UITouch *touch = [[event touchesForView:self.view] anyObject]; 

CGPoint location = [touch locationInView:touch.view]; 

if(CGRectContainsPoint(oneButton.frame, location)) 
{ 
    [self oneFunction]; 
    [oneButton setHighlighted:YES]; 
} 
if(CGRectContainsPoint(twoButton.frame, location)) 
{ 
    [self twoFunction]; 
    [twoButton setHighlighted:YES]; 
} 

}

我希望能夠點擊任何按鈕激發功能&也能夠從一個按鈕拖到另一個按鈕並激活該功能。

因此,基本上只需點擊一個按鈕並滑動手指即可激活另一個按鈕,而無需從按鈕外按下並滑動。

我想我很接近,需要一點幫助。希望這些足夠清楚。

謝謝。

+0

最好的地方在於objective-c而不是c。 – BobbyShaftoe 2010-06-16 03:34:47

+0

該代碼看起來不錯。你想要的不是做什麼? – 2010-06-16 03:45:34

+0

@Jeff不起作用的是,當我擊中UIButton中的一個時,我可以將手指滑動到另一個手指以觸發該功能。 我必須從任何UIButtons外面滑動手指。 – AndrewDK 2010-06-16 13:36:07

回答

1

嘗試了不同的東西。使用這種工作要好得多:

if(CGRectContainsPoint(myObject.frame, location) && lastButton != myObject) { 

中的touchesBegan & touchesMoved用它。