我有一个包含几个子视图的视图,每个子视图都有一个透明按钮。我将这些视图放在我的主 UIView 中的 for 循环中,在这个循环中,我还为子视图按钮属性分配了一个目标和一个动作。我的问题是只有在循环中创建的第一个视图和按钮有效(也就是说,当我单击它时它的动作被调用)。
循环的相关部分如下所示:
// _categories is an array
for (int i = 0; i < _categories.count; i++) {
[...]
Category *category = [_categories objectAtIndex:i];
CategoryView *categoryView = [[CategoryView alloc] initWithFrame:categoryRect andTitle:category.name];
[...]
categoryView.categoryButton.tag = [category.categoryId intValue];
[categoryView.categoryButton addTarget:self action:@selector(openCategoryWithId:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:categoryView];
[...]
}
动作如下所示:
- (void)openCategoryWithId:(UIButton *)sender
{
// Only gets called when I click on the first views button.
NSLog(@"Hello");
}
我试图为子视图创建一个强大的属性,但这没有帮助。
关于我应该做什么的任何想法?