Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS第一个UICollectionViewCell图像未仅在使用约束后加载_Ios_Objective C_Iphone_Uicollectionview_Uicollectionviewcell - Fatal编程技术网

iOS第一个UICollectionViewCell图像未仅在使用约束后加载

iOS第一个UICollectionViewCell图像未仅在使用约束后加载,ios,objective-c,iphone,uicollectionview,uicollectionviewcell,Ios,Objective C,Iphone,Uicollectionview,Uicollectionviewcell,如果没有约束,我的UICollectionViewCells将立即加载,而不会出现任何问题。当我在序列图像板中设置约束以使图像视图水平且垂直居中于单元时,第一个图像单元不会加载。我必须滚动几次,然后返回到第一个图像单元格显示的开始。去掉约束,它就会恢复到完美的工作状态 我想可能图像没有及时加载,但情况似乎并非如此 我错过了什么 我可以输入一些代码,但它是一个非常标准的UICollectionView,在ViewController中有自定义单元格 -(UICollectionViewCell *

如果没有约束,我的UICollectionViewCells将立即加载,而不会出现任何问题。当我在序列图像板中设置约束以使图像视图水平且垂直居中于单元时,第一个图像单元不会加载。我必须滚动几次,然后返回到第一个图像单元格显示的开始。去掉约束,它就会恢复到完美的工作状态

我想可能图像没有及时加载,但情况似乎并非如此

我错过了什么

我可以输入一些代码,但它是一个非常标准的UICollectionView,在ViewController中有自定义单元格

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {


    CollectionViewCell *cell = (CollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

    NSString *imageName = [NSString stringWithFormat:@"%@", [self.urlArray objectAtIndex:indexPath.row]];
    [cell setImageName:imageName];

    [cell updateCell]; 
    return cell;

}



    -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
        return self.collectionView.frame.size;
    }
编辑:
我刚刚移除了导航栏,前两幅图像被加载到导航栏后面。它们以默认prototype CollectionViewCell的大小加载。一旦我离开并返回到它,它就是预期的大小。

当您不设置约束时,IB会自动为您设置约束,根据情节提要中的帧为您提供绝对位置和大小。您添加的约束很有可能没有达到您认为的效果。

当您不添加约束时,IB会自动为您添加约束,根据情节提要中的帧为您提供绝对位置和大小。您添加的约束很可能没有达到您认为的效果。

添加[cell layoutifneed];就在cellforitematindexpath中返回单元格之前,将其修复为添加[CellLayoutFneed];就在cellforitematindexpath中的返回单元格之前,修复了它

我认为可能是这种情况,但是,这是一个一次分页一个单元格的水平集合视图。随后的每个单元格都在做我期望它做的事情,当我返回到第一个单元格时,它正是我期望它的位置,整个集合现在执行的正是它应该做的。此外,当单元格上的UIImage没有加载时,单元格本身也在加载(我将其设置为另一种颜色以进行检查)这正是它应该在的地方。看起来这些约束正在搞乱图像最初的加载方式。是的,这就是我所说的约束不是你所认为的那样。如果您只是限制位置而不是大小,这可能是您的问题,具体取决于您的想象和设置时间。是的,但为什么这会导致最初不加载第一个图像,有时也不加载第二个图像(或作为您的建议可能在屏幕外)但下面的图像加载良好,然后当我去刷回第一个图像,他们是他们应该在那里。约束条件不是一致的吗?好的,所以我刚刚移除了导航栏,前两幅图像被加载到导航栏后面。它们以默认prototype CollectionViewCell的大小加载。一旦我滚动到它,它是正确的大小。这是我认为可能是这样的情况。然而,这是一个水平收集视图,一次只分页一个单元格。随后的每个单元格都在做我期望它做的事情,当我返回到第一个单元格时,它正是我期望它的位置,整个集合现在执行的正是它应该做的。此外,当单元格上的UIImage没有加载时,单元格本身也在加载(我将其设置为另一种颜色以进行检查)这正是它应该在的地方。看起来这些约束正在搞乱图像最初的加载方式。是的,这就是我所说的约束不是你所认为的那样。如果您只是限制位置而不是大小,这可能是您的问题,具体取决于您的想象和设置时间。是的,但为什么这会导致最初不加载第一个图像,有时也不加载第二个图像(或作为您的建议可能在屏幕外)但下面的图像加载良好,然后当我去刷回第一个图像,他们是他们应该在那里。约束条件不是一致的吗?好的,所以我刚刚移除了导航栏,前两幅图像被加载到导航栏后面。它们以默认prototype CollectionViewCell的大小加载。一旦我滚动到它,它是正确的大小。