1

我使用以下带边框的代码绘制了一个椭圆。当我使用CGContextDrawImage方法时,我没有得到边框,图像显示为椭圆形。否则我得到这个椭圆的边界线。其实我想得到椭圆形和边框的图像。我只有其中一个。我想两者兼得。

- (void)drawRect:(CGRect)rect
{
     // Drawing code
    context =UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
 CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
 CGContextAddEllipseInRect(context, self.bounds);

CGContextClip(context);
CGContextStrokePath(context);
     CGContextDrawImage(context, displayImageView.frame, displayImageView.image.CGImage);

}

编辑:

我怎样才能解决我的问题,如下图所示
在此处输入图像描述

上面的视图有带有白色边框的图像。我想要完全一样的。请告诉我任何一个。

4

1 回答 1

3

CGContextClip还重置当前路径:

确定新的剪切路径后,该函数将上下文的当前路径重置为空路径。

做这个:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
CGContextAddEllipseInRect(context, self.bounds);

CGContextClip(context);
CGContextDrawImage(context, displayImageView.frame, displayImageView.image.CGImage);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
CGContextAddEllipseInRect(context, self.bounds);
CGContextStrokePath(context);
于 2013-06-07T08:44:21.087 回答