我想在一个专栏周围画一个轮廓。以下是我的应用的实际情况:https://gyazo.com/80dffe6a153e82565a610222a43e0c11
所以白栏代表我们实际上的日子。但我真的不想这样做。
其实我这样做:
if(column == _intOfTheDay){ //intOfTheDay represent the day one where we are actually
cell.backgroundColor = [[UIColor whiteColor]colorWithAlphaComponent:0.95];
}
我尝试过这样的事情,以便更接近我想要的结果:
if(column == _intOfTheDay){
cell.layer.borderWidth = 5.0f;
cell.layer.borderColor = [UIColor redColor].CGColor;
}
但是这里的问题(没有因UICollectionView
引起的所有错误)是它在每个单元格周围绘制一个矩形。而我想要的是只绘制一个矩形但是在所有列周围。
我怎么处理?
提前感谢您的所有帮助。
答案 0 :(得分:1)
如果您不想继承UICollectionViewCell,请使用以下命令:
float borderWidth = 5.0;
CALayer *leftBorder = [CALayer new];
leftBorder.frame = CGRectMake(0.0, 0.0, borderWidth, cell.frame.size.height);
leftBorder.backgroundColor = [UIColor redColor].CGColor;
[cell.layer addSublayer:leftBorder];
CALayer *rightBorder = [CALayer new];
rightBorder.frame = CGRectMake(cell.frame.size.width - borderWidth, 0.0, borderWidth, cell.frame.size.height);
rightBorder.backgroundColor = [UIColor redColor].CGColor;
[cell.layer addSublayer:rightBorder];
答案 1 :(得分:1)
您可以执行以下操作,将三个边框设置为左侧,右侧和顶部的第一个单元格,将左侧,右侧和底部的最后一个单元格设置为左侧和右侧的所有中间单元格。您可以使用CALayer
设置一个侧边框,如下例所示,
CALayer *TopBorder = [CALayer layer];
TopBorder.frame = CGRectMake(0.0f, 0.0f, self.myImageView.frame.size.width, 3.0f);
TopBorder.backgroundColor = [UIColor redColor].CGColor;
[cell.layer addSublayer:TopBorder];