0
CALayer在縮放時如何平滑地繪畫?CALayer知道我在縮放時不知道什麼
從第三張(最高)圖片中可以看出,白色邊框用精確的anti-aliased
進行渲染。
但是我的標籤(儘管我設置了contentScaleFactor
)和我的手繪圓圈(即使我將anti aliasing
打開)都沒有。
如何爲UIKit組件或手繪圖形提供抗鋸齒渲染?可以像CALayer一樣順暢地進行縮放。
有什麼魔力?
白色邊框使用視圖的CALayer的得出:
self.layer.cornerRadius = frame.size.width/2.0f ;
self.layer.borderColor = [UIColor whiteColor].CGColor ;
self.layer.borderWidth = 3.0f ;
的數字是UILabel的
CGFloat contentScale = self.zoomScale * [UIScreen mainScreen].scale; // Handle retina
label.contentScaleFactor = contentScale;
並考慮:
typedef struct {
CGRect rect ;
CGColorRef color ;
} EventColor ;
4圈使用CoreGraphics中
::CGContextSetAllowsAntialiasing(context, true) ;
::CGContextSetShouldAntialias(context, true) ;
// ...
EventColor ec = ...
// ...
::CGContextSetFillColorWithColor(context, ec.color) ;
::CGContextFillEllipseInRect(context, ec.rect) ;
它是contentScale還是contentsScale?注意第二個中額外的's' – 2013-05-08 19:41:12