菜鸟教程小白 发表于 2022-12-13 07:27:44

ios - UICollectionView - 图像被随机设置


                                            <p><p>我在我的应用程序中使用 collectionView。我正在为 didSelect 委托(delegate)中的单元格背景 View 设置图像。但是当我选择一个单元格 indexPath 时,图像被设置为 3 个单元格 indexPath。当我滚动 collectionView 时,图像会随机更改吗?请帮我。提前致谢。</p>

<pre><code>- (void)viewDidLoad
{
    ;

    forCellWithReuseIdentifier:uio];
}

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

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

    UICollectionViewCell *cell = [collection dequeueReusableCellWithReuseIdentifier:uio
forIndexPath:indexPath];
    cell.backgroundColor = ;
   return cell;
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@&#34;index %@&#34;,indexPath);
    UICollectionViewCell *cell = ;

    cell.backgroundView =[initWithImage:];

}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>那是因为您重复使用了您的单元格。一个选项是使用字典变量来表示您的单元格已被选中,如果尚未选中则重置图像。</p>

<pre><code>- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@&#34;index %@&#34;,indexPath);
    UICollectionViewCell *cell = ;

    cell.backgroundView =[initWithImage:];

    forKey:];
}
</code></pre>

<p>然后在您的 cellForItemAtIndexPath 方法中,您将检查该值</p>

<pre><code>- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    UICollectionViewCell *cell = [collection dequeueReusableCellWithReuseIdentifier:uio
forIndexPath:indexPath];
    BOOL selected = [] boolValue];

    if(selected){
      cell.backgroundView =[initWithImage:];
    }else{
      cell.backgroundView = nil;
    }

    cell.backgroundColor = ;
   return cell;
}
</code></pre>

<p>当然,如果你使用某种对象作为模型,这里有一个选定的变量是合适的,你将不再需要一个 nsdictionary。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UICollectionView - 图像被随机设置,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23013935/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23013935/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UICollectionView - 图像被随机设置