菜鸟教程小白 发表于 2022-12-12 19:51:32

ios - 在实例化单元格之前调用 UICollectionView 委托(delegate)方法?


                                            <p><p>我正在实现一个 UICollectionView,它通过 Parse 从在线获取数据。我正在将图像加载到 Collection View 中。我遇到的问题是 Collection View 的委托(delegate)方法之一在重新加载单元格之前被调用。</p>

<p>我有一个方法可以将背景中的对象加载到 NSArray 中。一旦他们都完成了,我重新加载我的收藏 View 。从那里我的委托(delegate)方法在 <code>collectionView:cellForItemAtIndexPath</code> 之前被调用。我的委托(delegate)方法处理每个单独单元格的大小,以便它们可以根据照片的大小进行更改。 </p>

<p>这是一个问题,因为单元格中需要包含图像才能让我看到它们对于委托(delegate)方法的大小。 </p>

<p>我的委托(delegate)方法如下所示:</p>

<pre><code>- (CGSize)collectionView:(UICollectionView *)collectionView layout:(NHBalancedFlowLayout *)collectionViewLayout preferredSizeForItemAtIndexPath:(NSIndexPath *)indexPath
{   
    CustomCollectionViewCell *currentCell = (CustomCollectionViewCell *);

    if (currentCell) {
      return ;
    }
    return ;
}
</code></pre>

<p>就像我说的,这个委托(delegate)方法在 <code>collectionView:cellForItemAtIndexPath</code> 之前被调用。这导致局部变量“currentCell”返回零。我该怎么做才能正确设置它,以便在加载所有单元格后调用委托(delegate)?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我在 ParseTableView 中可能也遇到了同样的情况。关于解析集合和表格 View 如何设置它们的尺寸,您是绝对正确的。上传图片的时候保存图片的宽高可以解决这个问题。这样,您可以在 PFFile 图像完成下载之前<strong></strong>获取图像的尺寸(这通常发生在设置 Collection View 之后)。</p>

<pre><code>- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    MyParseImage *image = ;
    CGFloat imageHeight = [ floatValue];
    CGFloat imageWidth = [ floatValue];
    CGFloat ratio = self.view.frame.size.width / imageWidth;

    return imageHeight * ratio;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在实例化单元格之前调用 UICollectionView 委托(delegate)方法?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22160903/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22160903/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在实例化单元格之前调用 UICollectionView 委托(delegate)方法?