Ios 在某些布局中隐藏UICollectionView项

Ios 在某些布局中隐藏UICollectionView项,ios,uicollectionview,Ios,Uicollectionview,我有一个UICollectionView,它根据用户偏好使用两种不同的布局。我希望某些单元格在某些布局中显示,但在其他布局中不显示。我如何做到这一点?我真的需要重新加载集合视图数据吗?完成此操作需要两个步骤,这两个步骤也适用于UITableView 更新数据源。如果您使用的是NSDictionary或NSArray,则需要添加或删除要显示/隐藏的项 在UICollectionView或UITableView上调用重载数据。差不多就是这样 如果要删除或添加动画,则情况有所不同。在中间有两个方法,你

我有一个UICollectionView,它根据用户偏好使用两种不同的布局。我希望某些单元格在某些布局中显示,但在其他布局中不显示。我如何做到这一点?我真的需要重新加载集合视图数据吗?

完成此操作需要两个步骤,这两个步骤也适用于UITableView

更新数据源。如果您使用的是NSDictionary或NSArray,则需要添加或删除要显示/隐藏的项

在UICollectionView或UITableView上调用重载数据。差不多就是这样

如果要删除或添加动画,则情况有所不同。在中间有两个方法,你必须打电话确认你的更新顺序是正确的。但这是一个完全不同的问题

编辑:

作为如何使用数组的示例

- (void)methodCalledWhenLayoutChanges:(BOOL)includeOptionalString {
    if (includeOptionalString) {
        [_collectionViewDataSourceArray addObject:_optionalString];
    } else {
        [_collectionViewDataSourceArray removeObject:_optionalString];
    }

    [self.collectionView reloadData];
    }

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return _collectionViewDataSourceArray.count;
}

// Never actually setup a collection view like this. This is just an example of how to reference a data source for creating a collection view cell.
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *cell = [[UICollectionViewCell alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 50.0f, 50.0f)];

    UILabel *textLabel = [[UILabel alloc] initWithFrame:cell.bounds];
    textLabel.text = [_collectionViewDataSourceArray objectAtIndex:indexPath.row];
    [cell addSubview:textLabel];

    return cell;
}

我希望在更改布局时,一些项会消失,而不必更改从数据源方法返回的内容。您不必更改从数据源方法cellForItemAtIndexPath、numberOfSectionsInCollectionView返回的内容,etc,但您很可能需要更改实际数据源的内容,从表示内容的数组/字典中删除一项。如果集合视图和/或其布局不通过这些方法,如何知道删除单元格?您将调用reloadData以再次调用这些方法,但你不会改变那些方法。您如何确定显示哪些单元格?collectionView:NumberOfItemsSection:method看起来像什么?对用于填充单元格的数组有另一个引用,即FilteredCollectionViewDataSourceArray。更改布局时,将重置过滤后的数组,通过自定义逻辑仅添加所需的项,然后重新加载数据。这类似于实现搜索,但具有预定义的结果=