IOS UICollectionView与ScrollView

问题描述:

我有6个图像在我的数据库中。IOS UICollectionView与ScrollView

我已经创建UIScrollView *scroll;,在那之后,我创造了UICollectionView并添加UICollectionViewUIScrollView

UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; 
     collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(screenWidth*i,5,screenWidth ,self.scroll.frame.size.height-5) collectionViewLayout:layout]; 
     [collectionView setDataSource:self]; 
     [collectionView setDelegate:self]; 
     [collectionView setPagingEnabled:YES]; 
     collectionView.showsHorizontalScrollIndicator = NO; 
     collectionView.showsVerticalScrollIndicator = NO; 
     [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"]; 
     [collectionView setBackgroundColor:[UIColor purpleColor]]; 
     [self.scroll addSubview:collectionView]; 

而现在,当滚动我想重装下面这段代码的UICollectionView数据:

- (void)scrollViewDidScroll:(UIScrollView *)sender { 
    if (!pageControlBeingUsed) { 
     [getAllEmoji removeAllObjects]; 
     // Switch the indicator when more than 50% of the previous/next page is visible 
     CGFloat pageWidth = self.scroll.frame.size.width; 
     int page = floor((self.scroll.contentOffset.x - pageWidth/3)/pageWidth) + 1; 
     self.pageControl.currentPage = page; 
     //Change Emoji when scroll 
     NSString *str = [getAllCategory objectAtIndex:page]; 
     NSArray *arr = [Emoji MR_findByAttribute:@"category" withValue:str]; 
     if (arr.count > 0) { 
      for (int i = 0; i < arr.count; i++) { 
       Emoji *emoji = [arr objectAtIndex:i]; 
       [getAllEmoji addObject:emoji.name_emoji]; 
      } 
      [collectionView reloadData]; 
     } 
    } 
} 

第一页控件是2张图片。

当我滚动到第二页控制是2图像(但它不加载新的图像)。

当我滚动到第三页控制是2图像(这是加载新的图像)。

你可以看到下面的链接在我的项目的一些图片: http://imgur.com/a/nIMic

而且我的项目演示。 https://github.com/VMTrinh/Sticker

请帮帮我!

+0

你遇到了什么问题。 –

+0

首先,当我先滚动时,它不会重新加载collectionView来显示新图像。在我的图像阵列中有2个新图像。你可以下载我的演示项目来检查这个错误!\ –

+0

我知道我的问题的原因,但我无法解决它。 –

我想你的问题是你不需要在滚动视图中嵌入集合视图。

滚动机制由集合视图管理。

您可以使用scrollToItemAtIndexPath:方法滚动收藏。

+0

你能看到我的一些关于我的问题的图片! –

+0

我的问题是在这里的细节: http://stackoverflow.com/questions/33562705/create-multi-uicollectionview-in-a-viewcontroller –