- 在info.plist中打开抗锯齿,但是会对影响整个应用的渲染速度;
Renders with edge antialisasing = YES (UIViewEdgeAntialiasing)
Renders with group opacity = YES (UIViewGroupOpacity) - View.layer.shouldRasterize = YES;
-
视图内抗锯齿处理:
在UIView的drawRect方法里为当前视图打开抗锯齿:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetAllowsAntialiasing(context, true);
CGContextSetShouldAntialias(context, true);
}
还有一种说法,给图片增加一个像素的透明边框,说可以解决锯齿问题,但是我试了不成功。。。
CGFloat border = 1;
CGRect imageRect = CGRectMake(0, 0, img.size.width, img.size.height);
UIGraphicsBeginImageContext(imageRect.size);
[img drawInRect:CGRectMake(border,border,img.size.width-border*2,img.size.height-border*2)];
UIImage* newImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
- 5、抗锯齿Anti-Aliasing:
Bitmap graphics context支持anti-aliasing。通过CGContextSetShouldAntialias来修改。这个属性是graphics状态的一部分。
你可以通过CGContextSetAllowsAntialiasing来设置一个特定的graphics context是否允许anti-aliasing。