我的数据库中有6张图片。
我创建了UIScrollView *scroll;
,之后,我创建了UICollectionView
并将UICollectionView
添加到UIScrollView
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];
}
}
}
第一页的Control是2张图片。
当我滚动到第二个pageControl时是2张图片(但是,不会加载新图片)。
当我滚动到第三页时,Control是2张图像(正在加载新图像)。
您可以在以下链接中的项目中看到一些图像:
http://imgur.com/a/nIMic
还有我的项目演示。
https://github.com/VMTrinh/Sticker
请帮我!
最佳答案
我想您的问题是您不需要将集合视图嵌入滚动视图中。
滚动机制由集合视图管理。
您可以使用scrollToItemAtIndexPath:
方法滚动您的收藏集。
关于ios - iOS UICollectionView与ScrollView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33561266/