簡體   English   中英

如何在touchesBegan中通過觸摸檢測選擇了哪個UIImageView?

[英]How can I detect which UIImageView was selected with a touch in touchesBegan?

用戶可以通過按下以下代碼來創建無限數量的UIImageViews:

- (IBAction) addPicture:(id)sender { 
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)]; 
    imageView.tag = a;
    imageView.image = [UIImage imageNamed:@"Picture.png"];
    a = a + 1;
    [self.view addSubview:imageView]; 
    [imageView release];
}

因此,第一個UIImageView獲取標簽1,第二個UIImage獲取標簽,依此類推...現在我如何找出用戶觸摸一下選擇了哪個UIImageView? 我認為,我必須在touchesBegan中執行此操作,但是正如我所說,我不知道如何獲取正確的UIImageView。

例如,在我的應用程序想法中,用戶可以使用按鈕創建圖像,然后通過觸摸選擇圖片,然后可以移動圖片並調整其大小。

謝謝你的幫助。

為什么不使用UIImageView的標記,而不創建自己的UIImageView的子類?
您可以覆蓋子類中的touchesBegan方法,以便檢測觸摸。
然后,在子類中,可以移動或調整子類具有的圖片的大小。

該SDK非常靈活; 實際上,有很多方法可以解決此問題:

子類的UIImageView,因為tomute已經提到。 然后,您將在每個對象的touchesBegan,touchesMoved和touchesEnded方法中響應UIImageView的觸摸。

如果您的UIImageViews不處理觸摸事件,那么它們將被傳遞到超級視圖,您可以通過詢問來檢查超級視圖

if ([[touch view] isKindOfClass:[UIImageView class]]

然后也許

switch ([[touch view] tag])
case (1) {
…
break;
}
case (2) {
…
break;
}

該事件將繼續傳遞下去,直到鏈中的某些事物可以處理為止。

查看事件處理和響應者鏈。

暫無
暫無

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

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