添加和删​​除另一个视图控制器后,UICollectViewFlowLayout minimumInteritemSpacing失败

时间:2014-10-07 03:58:07

标签: ios uicollectionview

摘要

  1. 收藏视图显示4张图片。还有更多,但它们还没有显示出来。

  2. 在集合顶部为另一个视图设置动画。删除它。

  3. 回来。滚动UICollectionView以显示原始

  4. 他们不遵循FlowLayout规则。

  5. 详细说明工作原理。

    1. 重新启动应用。

    2. 转到包含UIcollectionView

    3. 的VC
    4. DO SCROLL显示第5和第6项。

    5. 在此之上添加另一个VC:

    6. [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;
       }];
      
      1. 立即删除该视图
      2.   

        [UIView animateWithDuration:1.0                        动画:^

         {
             formName.view.frame = CGRectMake(0, self.scrollHeight3,     
        
             

        self.screenWidth,self.scrollHeight3);        }

        completion:^(BOOL finished)
         {
             [formName.view removeFromSuperview];
             [formName removeFromParentViewController];
         }];
        
        1. 滚动UICollectionView。第五和第六项仍然很好。
        2. 什么不工作的细节

          但是,当第5和第6个条目没有立即显示时,会发生这种情况:

          1. 重新启动应用。

          2. 转到包含UIcollectionView

          3. 的VC
          4. 请勿滚动显示第5和第6项。

          5. 在此之上添加另一个VC:

          6. 立即删除该视图

          7. 现在滚动UICollectionView以首次显示第5和第6个条目。新图像不遵守规则。单元格远大于FlowLayout允许的单元格。

          8. 我已记录所有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];
            

0 个答案:

没有答案