2011-02-25 127 views
4

我有一個視圖控制器,其中有幾個uiview對象。我需要知道哪些uiview用戶已被點擊。這怎麼可能?任何指導將有很大的幫助....找到哪個視圖被點擊

感謝
潘卡

回答

6

這裏是現在,你需要實現這樣的

的方法,你可以做些什麼來得到你想要的東西.....在這個例子中,我創建了7次

UITapGestureRecognizer* gestureRecognizer; 
UIView* myView; 
for (int i = 0; i < 8; i++) 
{ 
    gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomthing:)]; 
    gestureRecognizer.numberOfTapsRequired = 1;//or what ever you want 

    myView = [[UIView alloc] initWithFrame:CGRectMake(10, i*30, 30, 28)]; 
    myView.backgroundColor = [UIColor redColor]; 
    myView.tag = 100+i; 
    [self.view addSubview:myView]; 
    [myView addGestureRecognizer:gestureRecognizer]; 
    [myView release]; 
    [gestureRecognizer release]; 
} 

-(void)doSomthing:(id)sender 
{ 
    UIView* temp = [(UITapGestureRecognizer*)sender view]; 
    // here you get the view you wanted 
    NSLog(@"view number :%d",temp.tag); 
} 

我認爲這應該可以幫到你

+0

謝謝阿米特你真的教會我一些新的東西... – pankaj 2011-02-25 09:05:19

0

U很可能會在每個視圖的頂部添加一個帶有標記的自定義按鈕。然後你就可以知道哪個視圖是基於按鈕標籤的。

請看看這個。它可能有幫助。

http://www.iphonedevsdk.com/forum/iphone-sdk-development/13041-touch-event-subview.html

+0

它建議我在uiview下添加一個隱形按鈕。有沒有其他的方式,因爲它看起來很奇怪,在我的頁面上不必要地添加這麼多的uibutton。 – pankaj 2011-02-25 08:52:04

+0

ohkk我知道了...它花了我時間,但我發現你的意思是...謝謝 – pankaj 2011-02-25 09:01:20

1

設置標籤對每個視圖,以跟蹤它們。

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

    // We only support single touches, so anyObject retrieves just that touch from touches 
    UITouch *touch = [touches anyObject]; 
    NSLog(@"view %i", [touch view].tag); 
} 
+0

它將如何告訴我哪個視圖被點擊。我的頁面上有大約10-12個視圖。 – pankaj 2011-02-25 08:44:41

+0

對每個視圖使用標記... NSLog(@「view%i」,[touch view] .tag); – FoJjen 2011-02-25 08:55:00

+0

非常感謝 – pankaj 2011-02-25 09:02:33

相關問題