bezierPathWithRoundedRect:在视网膜屏幕上显示不良结果

时间:2013-09-12 09:21:12

标签: ios uiimageview uiimage rounding uibezierpath

我使用一种方法在我的iOS应用程序上获得圆形图片,这在iphone 3上完全正常。我的问题是,只要我在iphone 4或更高版本上试用它,图片的质量就会很差。

有什么办法,我可以把我的代码转换成高分辨率的圆形画面吗?

-(void) setRoundedView:(UIImageView *)imageView picture: (UIImage *)picture toDiameter:(float)newSize{

UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0);

[[UIBezierPath bezierPathWithRoundedRect:imageView.bounds
                            cornerRadius:100.0] addClip];

CGRect frame=imageView.bounds;
frame.size.width=newSize;
frame.size.height=newSize;
[picture drawInRect:frame];

imageView.image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
}

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

问题在于您如何定义图像上下文。您指定的是1.0刻度,但在视网膜屏幕上应该是2.0。

相反,您可以使用0.0来默认为原生质量:

UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 0.0);