UICollectionViewCell 的边框问题

使用 layer 的 border 相关属性可以设置 border 的颜色,宽度等, 注意.需要import QuartzCore, 否则会找不到这个 API

@IBOutlet weak var deviceTypeCollectionView: UICollectionView!
...
 deviceTypeCell?.layer.borderWidth = 1.0
 deviceTypeCell?.layer.borderColor = UIColor.lightGrayColor().CGColor

但这里有个问题, 加了 border 以后会在上下左右都有 border, 有时候我们可能只需要部分边加 border, 好像就没办法了, 只好用别的办法.

  1. 在 UICollectionViewCell 的subClass中自定义边框, 其实是宽度为1设置了背景色的两个imageView
class DeviceTypeCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var imageView: UIImageView!

    @IBOutlet weak var label: UILabel!

    @IBOutlet weak var rightLineImage: UIImageView!
    @IBOutlet weak var bottomLineImage: UIImageView!
}
  1. 在collectionView中通过判断indexPath来决定是否显示边框
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
            if myDevices.count == 1 { // 只有一个元素, 要显示右边框
                deviceTypeCell?.rightLineImage.hidden = true
            } else {
                deviceTypeCell?.rightLineImage.hidden = false
                if (indexPath.row % 2 == 1) {
                    deviceTypeCell?.rightLineImage.hidden = true
                }
            }
}

效果大概是这个样子
|

------|------
|
------|------
|

2015-08-21 10:16283