2009-07-20 29 views
2

我有一個透明的UIView,幾乎覆蓋整個屏幕。我在頂部留下了50個像素。它是View Controller觀點的一個孩子。無論是直接還是間接,底層視圖如何知道其矩形是否被觸摸?

在UIView下有MyView繼承UIView,它與屏幕大小相匹配。而這個MyView的類中,我問一個觸摸就可以非常簡單,這一點:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 

    if ([touch view] == self) { 
     NSLog(@"MyView touched"); 
    } 
} 

現在有趣的事情,當然,如果用戶觸摸透明的UIView它涵蓋了MyView的,我不在控制檯中不會觸及「MyView」。但是,當用戶觸摸屏幕頂部MyView的未覆蓋區域時,觸摸就會到達那裏。

這對我來說是合乎邏輯的,因爲我要求[touch view] == self。但是如果我想知道MyView的矩形區域被觸摸了(不管是間接的還是直接的)呢?

有沒有辦法捕捉出現在屏幕/窗口上的任何觸摸,然後檢查它是否與視圖的矩形區域相匹配?

回答

2

您應該學習iPhone應用程序編程指南的關於Touch Events的部分以瞭解您正在尋找的背景。你想要掌握的概念是響應者鏈,所以也通過參考UIResponder來了解它在做什麼。你絕對可以做你正在談論的一切,完整的討論在上面的鏈接中。

+0

完美!謝謝(你的)信息 :) – Thanks 2009-07-20 15:26:49

相關問題