簡體   English   中英

如何檢測點擊/點擊UIImageView?

[英]How to detect tap/click on UIImageView?

我正在嘗試開發一個有一些圖像的應用程序,所以我做的就像:

@property (nonatomic, retain) IBOutletCollection(UIImageView)NSArray* photos;

我正在用以下內容填充這些UIImageView數組:

[self.photos[i] setImage:[UIImage imageWithData:data]];

現在,我需要執行segue,它會將用戶重定向到另一個視圖,只需點擊哪個圖像。

示例:

假設我有20個圖像和View,如果用戶點擊第一張圖像,那么他應該被重定向到查看,如果用戶點擊第二個然后相同的視圖等等......

我喜歡在UIImageView上添加掩碼按鈕以響應用戶觸摸,但請注意默認情況下UIImageView的userInteractionEnabled為NO

下面是示例代碼,實際上我們總是將按鈕設置為透明。

CGRect imageRect = (CGRect){100, 100, 100, 100};
UIImageView *imageView = [[[UIImageView alloc] initWithFrame:imageRect] autorelease];
imageView.backgroundColor = [UIColor yellowColor];
[self.view addSubview:imageView];
imageView.userInteractionEnabled = YES;

UIButton *maskBtn = [UIButton buttonWithType:UIButtonTypeCustom];
maskBtn.frame = imageView.bounds;
maskBtn.backgroundColor = [UIColor redColor];
[maskBtn addTarget:self action:@selector(maskBtnDidClick:) forControlEvents:UIControlEventTouchUpInside];
[imageView addSubview:maskBtn];

如果你正在使用UIImageView,那么要處理tap,你必須創建UITapGestureRecognizer,給它們一個選擇器方法,並將它們添加到imageViews,並處理相應選擇器中的點擊。

更好的方法是使用自定義UIButton而不是UIImageView,並使用storyboard / xib中的操作直接連接它們,並處理這些操作中的按鈕事件。 因此,您可以阻止在每個imageView中添加UITapGestures。

有三種方式
1)您可以使用TapGestures
2)您可以使用UIControl在UIControl中添加ImageView並將選擇器提供給UIControl
3)將您的圖像添加到自定義UIButton

暫無
暫無

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

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