平滑滚动在UICollectionView内部的UICollectionView中

时间:2014-11-17 11:24:40

标签: ios objective-c uicollectionview

我正在使用UICollectionView Inside UICollectionViewCell。 Top CollectionView将在Veritical方向上滚动(Left< - > Right),Inner CollectionView将在水平方向滚动(Top< - > Bottom)..

当我滚动顶部collectionView顶部到底部滚动不顺畅,因为内部CollectionView滚动。

有没有办法从顶部< - >底部顺利滚动顶部CollectionView?

Top CollectionView DataSource方法

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

static NSString *cellIdentifier = @"CellId";

CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]

......

......

}

 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
 retrun 10;

 }

 **Within CustomCollectionViewCell Inner CollectionView Datasource**

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

 static NSString *cellIdentifier = @"CellId";

 CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]

 ......

 ......

}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
retrun 10;

}

2 个答案:

答案 0 :(得分:0)

实际上你正在做的是错误的方法,你使用UICollectionView作为UICollectionViewCell内的容器......滚动者无法找到我向谁滚动外部控件,即你的根您UICollectionView内的UICollectionViewUICollectionViewCell。你可以尝试一些其他的方法,如果你能弄清楚一些。或者如果你想出一些示例代码就好了。

答案 1 :(得分:0)

如果将集合视图的委托和数据源放在主集合视图单元格中,则不会出现问题。

如下所示:

集合视图单元格界面:

@interface GalleryCell()
<UICollectionViewDataSource, UICollectionViewDelegate>
{
    NSArray *dataSourceArray;
}
@end

并实施:

@implementation GalleryCell

            #pragma - datasources
            // Defines the number of cells in a section of collection view
            - (NSInteger)collectionView:(UICollectionView *)cv numberOfItemsInSection:(NSInteger)section;
            {
                return dataSourceArray.count;
            }

            // Defines the cells in the collection view
            - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath;
            {
                UICollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"cellId" forIndexPath:indexPath];
                return cell;
            }
    @end