摘要
收藏视图显示4张图片。还有更多,但它们还没有显示出来。
在集合顶部为另一个视图设置动画。删除它。
回来。滚动UICollectionView以显示原始
他们不遵循FlowLayout规则。
详细说明工作原理。
重新启动应用。
转到包含UIcollectionView
DO SCROLL显示第5和第6项。
在此之上添加另一个VC:
[self addChildViewController:formName]; [self.view addSubview:formName.view]; // Build new frame. Only change the Y position CGRect newFrame = formName.view.frame; newFrame.origin.y = 0; [UIView animateWithDuration:1.0 animations:^ { formName.view.frame = newFrame; }];
[UIView animateWithDuration:1.0 动画:^
{ formName.view.frame = CGRectMake(0, self.scrollHeight3,
self.screenWidth,self.scrollHeight3); }
completion:^(BOOL finished) { [formName.view removeFromSuperview]; [formName removeFromParentViewController]; }];
什么不工作的细节
但是,当第5和第6个条目没有立即显示时,会发生这种情况:
重新启动应用。
转到包含UIcollectionView
请勿滚动显示第5和第6项。
在此之上添加另一个VC:
立即删除该视图
现在滚动UICollectionView以首次显示第5和第6个条目。新图像不遵守规则。单元格远大于FlowLayout允许的单元格。
我已记录所有UICollectionViewFlowLayout
个参数。它们没有变化。单元格大小不变。 minimumInteritemSpacing
仍为12.0。我花了几个小时才这个。我被卡住了。
对不起,我没有发布图片的声誉。
以下是我创建单元格的方法:
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
以下是我创建UICollectionView
的方法photoFrame = floor ((model.screenWidth - 3 * model.detailPadding)/2 - 1);
verticalSpacing = floor (model.screenWidth * 0.04f);
flowLayout = [UICollectionViewFlowLayout new];
// flowLayout.delegate = self;
[flowLayout setItemSize:CGSizeMake(photoFrame, photoFrame + 25.0)];
flowLayout.minimumLineSpacing = verticalSpacing;
flowLayout.minimumInteritemSpacing = model.detailPadding;
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
CGRect frame = CGRectMake (model.detailPadding, model.detailPadding,
floor (model.screenWidth - 2 * model.detailPadding),
floor (model.screenHeight - model.navBarHeight - model.topBarHeight - 2* model.detailPadding));
// Create data for collection views
tileView = [[UICollectionView alloc ] initWithFrame:frame collectionViewLayout:flowLayout];
tileView.backgroundColor = [UIColor whiteColor];
tileView.delegate = self;
tileView.dataSource = self;
[tileView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:CellIdentifier];
[self.view addSubview:tileView];