以编程方式创建响应触摸事件的UIViews

时间:2014-11-11 01:11:54

标签: objective-c uiview touch programmatically-created

我正在创建一个UIViews网格,可以是4x4,5x5等。它们是使用嵌套的for循环创建的。

UITapGestureRecognizer * touchUpInView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTouchHandler)];

for (int i = 0; i < cardsPerRow; i++) {
    for (int j = 0; j < cardsPerRow; j++) {
        UIView * myView = [[UIView alloc] initWithFrame:CGRectMake(((j + 1) * widthGap) + (j * width), (25 + ((i + 1) * heightGap)) + (i * height), width, height)];
        [myView setTag:(i * cardsPerRow + j)];
        [myView addGestureRecognizer:touchUpInView];
        [myView setBackgroundColor:[UIColor redColor]];
        [self.view addSubview:myView];
    }
}

heightheightGapwidthwidthGap都被定义为整数,只是控制视图之间的间距和视图的大小。基本上,我希望每个视图都能够响应用户点击它。我不确定UITapGestureRecognizer是否是最佳方法,如果是,我如何参考以找出哪个视图被点击?我假设通过使用我已设置的标记并将其传递到viewTouchHandler方法,但我如何从@selector执行此操作以及如何在方法中引用它?或者我应该使用idUIView代替标记?

0 个答案:

没有答案