0

我有一个包含几个子视图的视图,每个子视图都有一个透明按钮。我将这些视图放在我的主 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");
}

我试图为子视图创建一个强大的属性,但这没有帮助。

关于我应该做什么的任何想法?

4

1 回答 1

1

看起来按钮没有正确定位,因为categoryRect.

于 2012-07-04T14:03:19.220 回答