1

我有一个视图控制器,在其中显示图像的网格/数组,其中每个图像视图都是自定义笔尖(自定义笔尖,因为图像也有名称和喜欢/不喜欢的图标)。所以我在我的视图控制器中显示了像这样的图像网格viewDidLoad

int row=0, col=0;
for (int i=0; i<arrayImg.count; i++) {
    NSArray *topObj = [[NSBundle mainBundle] loadNibNamed:@"CustomImageView" owner:nil options:nil];
    CustomImageView *imgView = [topObj objectAtIndex:0];
    imgView.frame = CGRectMake(180*col+10, 180*row+10, 170, 170);

    // custom image values inserted here

    [self.view addSubView:imgView];

    // update the row,col variables here
}

现在我需要为屏幕上显示的每个图像添加一个点击手势识别器。CustomImageView在这种情况下,在自定义笔尖/类中添加手势识别器对我来说似乎是合乎逻辑的。CustomImageViewextends UIView,所以这里似乎不能声明手势识别器(自动完成没有出现,语法高亮也不起作用)。我在这里错过了什么?

4

1 回答 1

5

您当然可以向您的CustomImageView(假设它是 a UIView)添加手势识别器。尝试这样的事情:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];

[imgView addGestureRecognizer:tapRecognizer];

请注意,您应该看到自动完成的唯一方法是addGestureRecognizer.

一般来说,比起自动完成,更喜欢官方文档(或编译器,如果你喜欢的话)来决定一个特性是否存在。根据我的经验,自动完成并不总是正确的。

于 2012-05-07T07:34:25.443 回答