如何在列周围绘制轮廓?

时间:2016-04-20 10:11:11

标签: ios objective-c border

我想在一个专栏周围画一个轮廓。以下是我的应用的实际情况: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引起的所有错误)是它在每个单元格周围绘制一个矩形。而我想要的是只绘制一个矩形但是在所有列周围。 我怎么处理?

提前感谢您的所有帮助。

2 个答案:

答案 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];