2011-03-13 26 views
4

我有一個UIView,它從drawRect:rect內部繪製一個圓。在閱讀了Retina顯示屏上的Apple開發信息之後,似乎使用Core Graphics意味着繪圖將自動利用更高的分辨率。然而,與徽章圖標中的類似圓圈相比,這個簡單的圓圈看起來非常矮胖。很顯然,我將它與具有光澤和陰影的東西進行比較,但我認爲很明顯我的繪畫效果不好。我嘗試過截取蘋果圖標徽章和我的圈子的截圖,他們在我的mac上查看了相同的內容 - 不過,在手機上查看每個圖片時,區別很明顯。有什麼簡單的我在這裏失蹤?用Core Graphics繪圖在Retina顯示屏上看起來矮胖

這是我使用的drawRect繪製代碼:RECT

UIBezierPath* aPath = [UIBezierPath bezierPathWithOvalInRect: 
         CGRectMake(0, 0, 22, 22)]; 

[[UIColor whiteColor] setStroke]; 
[[UIColor redColor] setFill]; 

CGContextRef aRef = UIGraphicsGetCurrentContext(); 
CGContextTranslateCTM(aRef, 10, 10); 
aPath.lineWidth = 3; 
[aPath fill]; 
[aPath stroke]; 

感謝您的幫助, 羅布

回答

10

哎呀,它需要抗鋸齒第一:

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetShouldAntialias(context, YES); 

我在繪製之前添加了這個,然後將其設置爲NO,然後立即繪製另一個圓圈。這兩個圓圈並排顯示出這是問題所在。