1

画像のグリッド/配列を表示するView Controllerがあります。ここで、すべての画像ビューはカスタムニブです(画像には名前と好き/嫌いなアイコンもあるため、カスタムニブです)。だから私は私のビューコントローラでこのようなことをしている画像のグリッドを表示しました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この場合、カスタム nib/class 内にジェスチャ レコグナイザーを追加することは理にかなっているように思えます。CustomImageViewextendsUIViewであるため、ここでジェスチャ認識エンジンを宣言することはできないようです (オートコンプリートは表示されず、構文の強調表示も機能しません)。ここで何が欠けていますか?

4

1 に答える 1

5

ジェスチャ認識機能を確実に追加できますCustomImageView(それが である場合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 に答える