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