0

我在视图控制器中创建了集合视图。我已经为委托和数据源方法编写了代码。现在我想在特定索引处启动视图,比如说 2。我在 viewDidLoad 方法中编写了以下代码。但是,它抛出异常,我的应用程序在模拟器中被终止。

NSIndexPath *a=[NSIndexPath indexPathWithIndex:18];
[self.myFullScreenCollectionView scrollToItemAtIndexPath:a atScrollPosition:10 animated:NO];
4

2 回答 2

3

您需要在以下分配一个有效的枚举值:

[self.myFullScreenCollectionView scrollToItemAtIndexPath:a atScrollPosition:10 animated:NO];

这里第二个参数需要填充一个属于以下枚举UICollectionViewScrollPosition的整数:

typedef NS_OPTIONS(NSUInteger, UICollectionViewScrollPosition) {
    UICollectionViewScrollPositionNone                 = 0,

    // The vertical positions are mutually exclusive to each other, but are bitwise or-able with the horizontal scroll positions.
    // Combining positions from the same grouping (horizontal or vertical) will result in an NSInvalidArgumentException.
    UICollectionViewScrollPositionTop                  = 1 << 0,
    UICollectionViewScrollPositionCenteredVertically   = 1 << 1,
    UICollectionViewScrollPositionBottom               = 1 << 2,

    // Likewise, the horizontal positions are mutually exclusive to each other.
    UICollectionViewScrollPositionLeft                 = 1 << 3,
    UICollectionViewScrollPositionCenteredHorizontally = 1 << 4,
    UICollectionViewScrollPositionRight                = 1 << 5
};

尝试使用这些标准枚举值之一,这可能会有所帮助。我认为 10 在这里无关紧要。

于 2013-02-19T08:13:53.057 回答
2

我一直在努力完成这项工作,现在我通过使用 CollectionView 的默认方法使其功能齐全。

这是如何将集合视图滚动到相应的项目索引。假设我希望集合视图滚动到索引 3 处的项目,这里是代码。

[self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:3 inSection:0]
                            atScrollPosition:UICollectionViewScrollPositionNone
                                    animated:NO];

关键因素是UICollectionViewScrollPositionNone枚举值。

于 2014-08-11T07:23:46.953 回答