[英]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.