将UIImage创建为带颜色的边框

时间:2015-10-09 09:56:26

标签: ios swift calendar uiimage uicolor

我正在使用FSCalendar我想要做的是改变显示事件的方式。我想在事件的周围放置一个彩色的矩形边框。我通过编辑单元格背景图层来做到这一点并且工作正常,但现在我意识到将我的代码更新为更新到FSCalendar的最新版本是错误的地方,这将覆盖我的更改。 我可以通过日历代表访问的一个是将图像设置为单元格,因此我想将图像创建为具有事件颜色的矩形边框。 这是我想要的图像: Calendar With events as rectangle border

任何建议都是适用的。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

此方法将绘制带边框的矩形。我会把它作为类方法并放入UIImage类别以方便使用。

- (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)imageSize andBorderWidth:(CGFloat)borderWidth fillWithColor:(BOOL)fillWithColor{

    UIGraphicsBeginImageContext(imageSize);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);

    if(fillWithColor) {
        [color setFill];
        CGContextFillRect(context, rect);
    } else {
        [color setStroke];
        CGContextStrokeRectWithWidth(context, rect, borderWidth);
    }

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

编辑:添加了fillWithColor参数

答案 1 :(得分:1)

您可以为UIImageView设置边框,而不是将图像设置为矩形边框

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