簡體   English   中英

我如何在SuperView上獲取touchesBegan事件

[英]How can I get touchesBegan event on SuperView

在我的程序中有兩個視圖(scrollView-super,view-sub * 2)。

在我的情況下,兩個子視圖在scrollView中被子視圖。 touchesBegan事件在子視圖中調用。

如何在scrollView中獲取事件???

@interface MyScrollView:UIScrollView
...
@implement MyScrollView
...
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //here is my code
    //but I can't get event here
   ...
}
-(id)initWithFrame:(CGRect) frame
{
...
    MyView *view1 = [[MyView alloc] initWithFrame:(0, 0, 320, 240);
    MyView *view2 = [[Myview alloc] initWithFrame:(0, 240, 320,240);
    [self addSubview: view1];
    [self addSibvoew: view2];
...
}

@interface MyView:UIView
...
@implement MyScrollView
...
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
   //break points 
   //here comes event
}

試試這個代碼。

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];

[scroll addGestureRecognizer:singleTap];

- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)touch{
    CGPoint touchPoint=[gesture locationInView:scrollView]; 
    touchPoint = [touch locationInView:self.view];  
}

我建議將您的兩個子視圖設為全局,然后在超級視圖中使用touchesbegan方法將觸摸和事件傳遞給子視圖進行處理。 所以像[view1 touchesBegan:touches event:event]之類的東西; 我沒有測試過,但這應該是一種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM