2011-03-14 19 views
2

我已記錄每一個點在用戶觸摸開始移動結束的ipad,然後我到一個CGMutablePathRef稱爲路徑添加這些點,然後我用下面的代碼繪製線條(路徑)用戶在iPad中觸摸。如何順利在ipad上線

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineCap(context, kCGLineCapRound); 
CGContextSetLineJoin(context, kCGLineJoinRound); 
CGContextSetStrokeColorWithColor(context, [UIColor redColor]); 
CGContextSetLineWidth(context, 2); 
CGContextAddPath(context, path); 
CGContextStrokePath(context); 

但這些線路沒有看起來光滑,感謝您的幫助

+0

你的意思是整條線不平滑,因爲它是一串直線段,或者你的意思是這些段本身是鋸齒狀的? – LavaSlider 2011-03-14 03:25:07

回答

1

你只需要你第一行後添加此。

CGContextSetAllowsAntialiasing(context, true); 
+2

上帝,沒有工作 – juliet 2011-03-14 02:54:34

+1

你在這條線後面加了這條線嗎? CGContextRef context = UIGraphicsGetCurrentContext(); – 2011-03-14 03:06:17

5

您可以通過實現更平滑的以下內容:

UIGraphicsBeginImageContext(self.frame.size); 
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
CGContextSetLineJoin(UIGraphicsGetCurrentContext(), kCGLineJoinRound); 
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), YES); 
CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), YES); 
CGContextSetMiterLimit(UIGraphicsGetCurrentContext(), 2.0); 

但是如果你需要繪製線條非常流暢/曲線,那麼你需要使用UIBezierCurve或任何其他彎曲算法重繪線。

編輯:我在我的代碼中做了一些修改,以便順利繪製。檢查我的經典板應用程序:https://itunes.apple.com/app/id493525167