单击重置按钮

时间:2018-05-03 11:28:08

标签: ios objective-c uibutton reload

我有一个产品过滤器列表,我想在点击重置按钮后将所有数据重置为默认值(无需点击)。

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 :(得分:0)

对于重置功能,您需要更新所有数据,就像您可能将已勾选的数据存储在数组中一样。

您需要刷新用于在collectionView中显示的数组。 然后你需要在collectionView上调用reload。

在你的函数中,我只能看到重新加载函数调用,而不是用于刷新可能用于在集合视图中显示的数组中的数据的任何函数。

我希望这会对你有所帮助。如果您还有其他需要,请告诉我。