繁体   English   中英

UICollectionView布局在iPad上崩溃,但在iPhone上运行良好

[英]UICollectionView layout crashes on iPad, but works fine on iPhone

UICollection视图布局在ipad中令人生畏,但可以在iphone上正常工作。 我们是否需要以不同于iPhone的方式管理iPad的UICollection视图布局?

我的代码:

-(void)reloadData {


    if(collectionData!= nil)
    {
        collectionData = nil;
    }

    [self.collectionView reloadData];

}

-(void)setCollectionView {

    if(self.collectionView == nil) {
            //        self.collectionView = (UICollectionView *)[self.view viewWithTag:_wallCollectionView_tag];
       self.collectionView.dataSource = self;
        self.collectionView.delegate = self;
        self.collectionView.userInteractionEnabled = YES;
    }

}

`enter code here`- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{printf("\n = %s",__FUNCTION__);

    return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{

    return [collectionData count];
}

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if ( [ [ UIScreen mainScreen ] bounds ].size.width > 320) {
        return CGSizeMake(118, 118);
    }
    return CGSizeMake(100, 100);
}
*** Terminating app due to uncaught exception 'NSRangeException', reason:     '*** -[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]' ***

这清楚地表明,您正在尝试访问超出数组范围的元素。 下一步检查:

  1. 您对-numberOfItemsInSection方法和-cellForItemAtIndexPath方法使用相同的数组。
  2. 在collectionView更新时,您不会更改数组(删除\\添加元素)。
  3. 您正确访问数据源数组:要检索数组的最后一个元素(包含5个元素),应使用键“ 4”-collectionData [4]或collectionData [[collectionData count]-1]。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM