使用水平滚动

时间:2016-09-06 07:34:24

标签: ios xcode uicollectionview

我正在关注这个例子 我在视图中添加了一个按钮

enter image description here 选择时,按钮图像变为绿色图标图像。

我如何使用this示例保留它?

2 个答案:

答案 0 :(得分:1)

要保持选择按钮状态,您需要在dictionary上为单元格存储选择信息。因此,一旦重新加载单元格,您可以根据您拥有的信息应用选择设置。

没有直接的方法(即使你现在应该使用它,因为它会导致记忆滥用),以保持它一直被选中。

答案 1 :(得分:1)

我已根据您的要求更新了您示例的现有代码,请找到以下网址下载代码并进行审核。

链接:https://www.dropbox.com/s/6xsr4o88khyijun/HorizontalTables.zip?dl=0

突出显示我已经完成的代码。

1)在NSMutableArray班级中取HorizontalTablesAppDelegate * arrSelection属性 2)在ArticleListViewController_iPhoneviewDidLoad方法中填写arrSelection的数据。

    for (NSInteger i = 0; i < [self.articleDictionary.allKeys count]; i++)
    {                        
        HorizontalTableCell_iPhone *cell = [[HorizontalTableCell_iPhone alloc] initWithFrame:CGRectMake(0, 0, 320, 416) tag:i];

        categoryName = [sortedCategories objectAtIndex:i];
        currentCategory = [self.articleDictionary objectForKey:categoryName];
        cell.articles = [NSArray arrayWithArray:currentCategory];

        if(i == 0)
            appDelegate.arrSelection = [[NSMutableArray alloc] init];

        NSMutableArray *arrSubData = [[NSMutableArray alloc] init];

        for(NSInteger j=0; j<currentCategory.count; j++)
            [arrSubData addObject:[NSNumber numberWithBool:NO]];

        [appDelegate.arrSelection addObject:arrSubData];
        [arrSubData release];

        [self.reusableCells addObject:cell];
        [cell release];
    }

3)HorizontalTableCell_iPhonecellForRowAtIndexPath方法

NSMutableArray *arrSelectionInfo = appDelegate.arrSelection[tableView.tag];
BOOL isSelect = [arrSelectionInfo[indexPath.row] boolValue];

if(isSelect)
    [cell.btnSelection setBackgroundColor:[UIColor greenColor]];
else
    [cell.btnSelection setBackgroundColor:[UIColor whiteColor]];

didSelectRowAtIndexPath方法

NSMutableArray *arrUpdate = appDelegate.arrSelection[tableView.tag];
[arrUpdate replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:YES]];
[tableView reloadData];

希望这对你有用。