菜鸟教程小白 发表于 2022-12-13 15:02:07

ios - 如何从 GetCell 方法 UICollectionView 跳过单元格/不返回单元格


                                            <p><p>我有一个“TagInstances”列表,每个列表都包含一个“颜色”字符串值。</p>

<pre><code>List&lt;TagInstance&gt; tags
</code></pre>

<p>在我的 UICollectionView 中,如果出现以下情况,我想放弃 tagCells 的初始化:</p>

<pre><code>tags.color = &#34;undefined&#34;
</code></pre>

<p>我正在尝试在“cellForItemAtIndexPath”/“GetCell”方法中执行此操作:</p>

<pre><code>
public UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
{
    var cell = (TagCell)collectionView.DequeueReusableCell(&#34;tagCell&#34;, indexPath);

    var thisTag = tags;

    if (thisTag.color == &#34;undefined&#34;) { /* todo: Skip over this cell somehow */ }

    try
    {
      var color = UIColor.Clear.FromHex(thisTag.color);

      cell.SetUIWithData(color, thisTag.abbreviation);

      cell.AddBorderAndShadow();
    }
    catch (Exception ex)
    {
      System.Diagnostics.Debug.WriteLine($&#34;\ncolor : { thisTag.color }\nThrows an exception : \n{ ex }\n&#34;);
    }

    return cell;
}
</code></pre>

<p>目前,我的 Collection View 显示有任何 TagInstance 具有未定义颜色的间隙。我希望该系列能够毫无间隙地出现。这可能吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>正如 rmaddy 和 SushiHangover 所说,正确的方法是拥有正确的数据源,其中只有您要显示的项目。</p>

<p>在某种程度上,替代方法是将那些不需要的单元格调整为宽度/高度 = 0。要使用 UICollectionView 做到这一点,您必须从 UICollectionViewFlowLayout 派生并覆盖 <code>LayoutAttributesForElementsInRect</code> 方法,然后返回 <code>Size = CGSize.Empty</code> 对于那些你不想看到的元素。</p>

<p>请参阅 <a href="https://developer.xamarin.com/guides/ios/user_interface/introduction_to_collection_views/#Subclassing_UICollectionViewFlowLayout" rel="noreferrer noopener nofollow">Xamarin Docs in Introduction to UICollectionView</a> 中的<em>子类化 UICollectionViewFlowLayout</em> 部分| . </p>

<p>同样,按照 SushiHangover 和 rmaddy 的建议,正确且更简单的方法是在数据源级别过滤元素。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何从 GetCell 方法 UICollectionView 跳过单元格/不返回单元格,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42822330/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42822330/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何从 GetCell 方法 UICollectionView 跳过单元格/不返回单元格