【问题标题】:Swift: border on UICollectionViewCell for some sidesSwift:UICollectionViewCell 上某些方面的边框
【发布时间】:2014-08-13 20:02:37
【问题描述】:

对于我目前正在构建的应用程序,我需要一个像 UICollectionView 这样的网格,并显示 3x3 UICollectionViewCellUICollectionView 将具有与屏幕相同的宽度,因此我希望仅在 UICollectionViewCell 的右侧和底部显示一个边框。它必须看起来像这样:

    -----------------------
     cell1 | cell4 | cell7
    -----------------------
     cell2 | cell5 | cell8
    -----------------------
     cell3 | cell6 |
    -----------------------

我认为如果我能以某种方式在不可见的UICollectionView 页眉的底部画一条线,并且在UICollectionView 页脚(顶部的一条线)上画一条线,它会起作用。然后对于每个UICollectionViewCell,我可以画出缺失的线条。

但是我不知道如何做到这一点,并且在这个主题上找不到任何(有点)相同的东西。

【问题讨论】:

    标签: ios xcode swift uicollectionview


    【解决方案1】:

    您可以在您的单元子类中放置一个表示该行的视图。这不是性能最好的解决方案,但在大多数情况下就足够了,而且您不需要编写任何代码。在您的 datasource 方法中,您可以将此行设置为 hidden 或不基于索引路径。

    例如,如果你不想在右边有一行,如果它是一行中的第三个单元格,请执行类似的操作

    cell.rightBorder.hidden = indexPath.item % 3 == 0
    

    【讨论】:

    • 感谢@Mundi 的建议,但我希望我的线宽为 0.5,因此我认为无法使用视图解决方案。有别的想法吗?我现在正在研究 UICollectionViewCell 的自定义类中的 drawRect 方法,但那里没有 NSIndexPath ...
    • 为什么不可能?您可以将视图的尺寸标注为 0.5 磅宽。 drawRect 也可以,但是代码少了很多。
    • 界面生成器中视图的最小宽度不是1点吗?我似乎无法将其更改为 0.5
    【解决方案2】:

    您可以通过子类化单元格并覆盖 drawRect 来实现。在那里您可以绘制底部和右侧边框。

    【讨论】:

    • 好吧,有道理.. 但是我怎样才能看到我在哪个单元格,然后检查它是否有一个“相邻单元格”来知道何时何地画线?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多