Кнопка UI не сбрасывается к значению по умолчанию после нажатия на кнопку «Сброс» - PullRequest
0 голосов
/ 03 мая 2018

У меня есть список фильтров продуктов, и я хотел бы сбросить все данные по умолчанию (без щелчка) после нажатия кнопки Сброс.

enter image description here

Но теперь мой случай - после того, как я нажал кнопку «Сброс», выбранные элементы не будут соответственно сброшены и будут заменены другими элементами. Вы можете сослаться на скриншот, как показано ниже: -

enter image description here

Вот моя часть связанного кода, пожалуйста, помогите и спасибо за ваш совет: -

FilterItemCell.m

- (void)setUpUI
{

    _contentButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [_contentButton setTitleColor: ThemeBlueColor
                      forState:UIControlStateNormal];
    [_contentButton addTarget:self action:@selector(checkButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:_contentButton];

}

- (void)checkButtonTapped:(id)sender
{
    if ([sender isSelected]) {
          !_attributeItemClick ? : _attributeItemClick();
        [sender setSelected: NO];
        [_contentButton setImage:nil forState:0];
        [_contentButton setTitleColor:ThemeBlueColor forState:UIControlStateNormal];

    } else {
          !_attributeItemClick ? : _attributeItemClick();
        [sender setSelected: YES];
        [_contentButton setImage:[UIImage imageNamed:@"isSelectYes"] forState:0];
        [_contentButton setTitleColor:ThemeRedColor forState:UIControlStateNormal];

    }

}

Filter_ViewController.m

- (void)setUpBottomButton
{
    CGFloat buttonW = FiltrateViewScreenW/2;
    CGFloat buttonH = 40;
    CGFloat buttonY = ScreenH -10 - buttonH;
    NSArray *titles = @[@"Reset",@"OK"];
    for (NSInteger i = 0; i < titles.count; i++) {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button setTitle:titles[i] forState:UIControlStateNormal];
        button.tag = i;

        CGFloat buttonX = i*buttonW;
        button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);
        button.titleLabel.font = PFR16Font;

        if (i == 0)
        {
            [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
            [button setBackgroundImage:[UIImage imageNamed:@"Button2-1"] forState:UIControlStateNormal];

            [button addTarget:self action:@selector(bottomButtonClick:) forControlEvents:UIControlEventTouchUpInside];
        }

        else if (i == 1)
        {
            [button setBackgroundImage:[UIImage imageNamed:@"Button1-1"] forState:UIControlStateNormal];

            [button addTarget:self action:@selector(bottomButtonClick:) forControlEvents:UIControlEventTouchUpInside];
        }
        else
        {

        }

        [_filtrateConView addSubview:button];
    }
}

- (void)bottomButtonClick:(UIButton *)button
{
    if (button.tag == 0) //Reset Button
    {
         //CURRENT CODE TO RELOAD COLLECTION VIEW DATA
        [self.collectionView reloadData];
    }
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

    FilterItemCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:FilterItemCellID forIndexPath:indexPath];

    cell.attribute_name=[[self.filterItem[indexPath.section] valueForKey:@"attribute_name"]objectAtIndex:indexPath.row];


    return cell;
}

1 Ответ

0 голосов
/ 03 мая 2018

для функции сброса необходимо обновить все данные, как при запуске, так как вы можете хранить помеченные в массиве.

вам нужно обновить массив, который вы используете для отображения в вашем collectionView. Затем вам нужно вызвать reload для вашего collectionView.

В вашей функции я вижу только вызов функции перезагрузки, но не любую функцию для обновления данных в массиве, который вы могли бы использовать для отображения в представлении коллекции.

Надеюсь, это поможет вам. Дайте мне знать, если вам нужно что-нибудь еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...