2015-04-10 2 views
-4

Спасибо всем. Но я должен сказать вам полные обстоятельства. У меня есть ячейка просмотра коллекции. Кроме того, я добавил флажки. и кнопка «Выбрать все» находится вне представления коллекции. Поэтому, если я нажму кнопку «Выбрать все», он должен выбрать все флажки внутри ячейки представления коллекции. Я добавил customuibutton внутри коллекции viewcell. 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];Выберите все флажки за один раз, щелкнув один UIButton

[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. - (void) checkBoxAction: (id) отправитель { CustomUIButton * button = отправитель; BOOL flag = 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 действия. Пожалуйста, помогите мне в этом

+3

Покажите нам свой код! – Peanut

+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]; 
} 

И вы должны быть все готовы :)

Опять извините любой смешной mispel или французских автозамены им просто на моем телефоне, и он взял меня 20 минут, чтобы записать это: D

+0

Хотя я хотел бы упомянуть, что вы должны придумать решение, просто сделав исследование. В конце концов, вы можете просто скопировать все кнопки в своем действии, как и другой ответ, и он тоже будет работать. Я даю вам более оптимальный способ (я верю), но это не заставит вас далеко, если вы научитесь самостоятельно. –

0

Во-первых, если вы используете UITabelView, чтобы показать эти флажки, это было бы хорошо, перезагрузить его или получить все ячейки, а затем перезагрузить каждую ячейку.
Затем, если у вас есть 10 флажков выше UIView, вы можете использовать NSMutableArray содержать 10 флажков, как:

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