我有兩個自定義的uibuttons。ios觸摸從一個按鈕移動到另一個按鈕
@interface myButton : UIButton
我重寫幾個方法,如
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// do something
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesMoved:touches withEvent:event];
[self.nextResponder touchesMoved:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
if (!CGRectContainsPoint(self.bounds, touchPoint)) {
[self touchesCancelled:touches withEvent:event];
}
return;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
// do something
}
-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesCancelled:touches withEvent:event];
return;
}
我要的是,當我觸摸一個按鈕,我可以保持我的觸摸移動到另一個按鈕的事情。當我觸摸第一個按鈕的界限之外時,我厭倦了調用touchesCancelled。所以我「想」然後我移動到另一個按鈕,這將是一個新的觸摸事件。但它不這樣工作。
我做錯了什麼?或者touchesCancelled方法不是用於這樣的? 在此先感謝!
我相信'當你移動你的手指從第一個按鈕的面積touchesCanceled'已經被調用。它不會在第二個按鈕上調用touchesBegan,因爲您沒有再次放下手指。爲什麼不使用手勢識別器呢? – 2013-03-26 16:01:42
您正在將事件從一個按鈕傳遞到另一個按鈕。一個按鈕上的事件位置與其他按鈕不匹配,因此顯然與您的代碼一樣,甚至會在其他按鈕中取消。 – nkongara 2013-03-26 17:15:02