通过单击一个UIButton一次选中所有复选框

时间:2015-04-10 06:14:12

标签: ios ios7 ios5 uibutton

谢谢大家。但我需要告诉你完整的情况。我有一个集合视图单元格。我已经添加了复选框。并选择全部'按钮位于集合视图之外。因此,如果我点击“选择全部”'按钮,它应该选择集合视图单元格内的所有复选框。我在集合视单元中添加了一个customuibutton。 CustomUIButton * checkboxButton = [CustomUIButton buttonWithType:UIButtonTypeRoundedRect];         [checkboxButton setTaggy:indexPath.row];         // [checkboxButton setTag:CHECKBOX_BUTON_ON_CELL + indexPath.row + indexPath.section];        // [checkboxButton setCollectionIdentifier:collectionView.tag];         [checkboxButton addTarget:self                            action:@selector(checkBoxAction :) forControlEvents:UIControlEventTouchUpInside];         checkboxButton.frame = CGRectMake(168.0,3.0,20.0,20.0);         [checkboxButton setSection:indexPath.section];

    [checkboxButton setHighlighted:NO];
    if (clsPartcipant.isSmallChanged)
    {
        [checkboxButton setBackgroundImage:[UIImage imageNamed:@"selected1.png"] forState:UIControlStateNormal];
    }
    else
    {
        [checkboxButton setBackgroundImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
    }
    [checkboxButton.titleLabel setTextAlignment:NSTextAlignmentCenter];
    [cell.contentView addSubview:checkboxButton];

    });

return cell;

我调用了一个像checkBoxAction这样的函数。 - (无效)checkBoxAction:(ID)发送方{     CustomUIButton * button = sender;     BOOL标志= NO;

if (button.selected)
{
    [button setSelected:NO];
    [button setBackgroundImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
    flag=NO;

}
else
{
    [button setSelected:YES];
    [button setBackgroundImage:[UIImage imageNamed:@"selected1.png"] forState:UIControlStateNormal];
    flag=YES;
}

if (button.collectionIdentifier == ClsRmPrctPresntCollectionView)
{
    [self ModifyDataArray:button.taggy flag:flag identifier:ClsRmPrctPresntCollectionView change:@"SmallButton" toDate:nil section:button.section];
    [self modifyCollectionArray:PRESENT processingData:self.presentDataArray identifier:ClsRmPrctPresntCollectionView index:button.taggy section:button.section];
}

} 现在我无法弄清楚我需要在selectAll按钮操作中添加什么。请帮帮我

2 个答案:

答案 0 :(得分:0)

我正在通过手机输入此内容,以免缺乏代码。无论如何,我会很清楚。

首先,您要将按钮链接为所有按钮,然后为其添加标记

在情节提要或代码中(在viewDidLoad中),为selected状态设置“已选中”图像,为not selected状态设置“未选中”图像。

现在,您的按钮将知道与您互动时要显示的内容。

对于每个按钮,您可能已经有了IBAction,这很好。你的SelectAll按钮也需要他自己的。

在所有按钮中,您将拥有

UIButton *bt = (UIButton*)sender;
[bt setSelected:!bt.isSelected];

现在我必须在我到达计算机后立即检查,但基本上将按钮的选定属性设置为与当前状态相反。

对于全选,您可以使用此

BOOL trigger;
    UIButton *bt = (UIButton*)sender;
    If(bt.isSelected == YES){
         trigger = NO;
}else{
         trigger = YES
}

for (int i = 0; i < 9 ; i++){ // note that 9 is the number of buttons

UIButton *bt = (UIButton*)[self.view viewWithTag:i]
[bt setSelected:trigger];
}

你应该全力以赴:)

请再次请原谅我手机上的任何荒谬的错误或法语自动更正,我花了20分钟写下来:D

答案 1 :(得分:0)

首先,如果您使用UITabelView来显示这些复选框,那就没问题了,重新加载它,或者让All Cells重新加载每个单元格。
然后,如果UIView上方有10个复选框,则可以使用NSMutableArray包含10个复选框,例如:

for(UIButton * button in mArray){
 // do select or deselect action
}