题 UICollectionViewCell边框/阴影


构建iPad应用程序时,如何在UICollectionViewCell周围绘制边框?

更多细节:我实现了一个扩展UICollectionViewCell的ProductCell类。现在,我想指定一些花哨的细节,例如边框,阴影等。但是,当尝试使用类似的东西时 这里,Xcode告诉我接收器类型'CALayer'是一个前向声明。


30
2017-10-29 12:05


起源




答案:


只是为了更多的实现:

#import <QuartzCore/QuartzCore.h>

在你的.m

确保你的类实现

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; 

因为这是设置细胞的地方。

然后你可以改变 cell.layer.background (仅在进口石英时可用)

见下文

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    MyCollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"pressieCell" forIndexPath:indexPath];
    //other cell setup here

    cell.layer.borderWidth=1.0f;
    cell.layer.borderColor=[UIColor blueColor].CGColor;

    return cell;
}

71
2018-06-06 13:15





迅速

针对Swift 3进行了更新

假设你有你的 使用所需方法设置集合视图,你可以写几行代码来添加边框。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell
    cell.myLabel.text = self.items[indexPath.item]
    cell.backgroundColor = UIColor.cyan 

    // add a border
    cell.layer.borderColor = UIColor.black.cgColor
    cell.layer.borderWidth = 1
    cell.layer.cornerRadius = 8 // optional

    return cell
}

笔记

  • 没有必要导入 QuartzCore 在Swift中,如果你已经导入了 UIKit
  • 如果您还想添加阴影,请参阅 这个答案

13
2017-10-29 08:20





您需要包含该框架 QuartzCore 并将标头导入您的类:

#import <QuartzCore/QuartzCore.h>

7
2017-10-29 12:16





斯威夫特4

cell.layer.borderColor = UIColor.black.cgColor
cell.layer.borderWidth = 1

在创建单元格后,在数据源方法中添加它

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionViewCell", for: indexPath)
     cell.layer.borderColor = UIColor.black.cgColor
     cell.layer.borderWidth = 1
}

1
2017-08-10 05:06