两个不同的UICollectionViewCell,在UISegmentedController之间切换它们

时间:2014-08-25 08:59:51

标签: ios xcode uicollectionview uisegmentedcontrol uicollectionviewcell

我想知道在同一个UICollectionView中有两个不同的UICollectionViewCells标识符的最简单方法是什么?我有一个UISegmentedController,我想切换到不同风格的UICollectionViewCells ..在哪里实现哪些代码。我有第一个Cell的PatternViewCell,但我如何处理另一个?请指教!

enter image description here

1 个答案:

答案 0 :(得分:0)

对于具有单个数据源的单个集合视图,您可以为单个单元类注册两个集合视图单元原型。

首先,在您的故事板中,将Cell1设置为第一个单元格原型的重用标识符,将Cell2设置为第二个单元格原型。它们都应该有PatternViewCell级。

然后,在更改分段控件的值时,重新加载集合视图:

- (IBAction)segmentedControlValueChanged:(id)sender {
    [self.collectionView reloadData];
}

将此操作绑定到Value Changed事件的分段控件。

然后在- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath方法中,您可以根据所选索引选择重用标识符。

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

    NSString *identifier = nil;
    if (self.segmentedControl.selectedSegmentIndex == 0) {
        identifier = @"Cell1";
    } else {
        identifier = @"Cell2";
    }

    PatternViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
    //configure cell
    return cell;
}