2014-07-07 52 views
0

我在繪製矩形單元格時出現了一個非常奇怪的問題,因爲它正在繪製單元格,但是當它顯示邊框中存在差異時顏色,找遍了周圍並沒有發現任何可以闡明爲什麼這可能是一些光,這是顯示問題http://screencast.com/t/wPS507Bg9e單元格中的繪製矩形正在改變一些矩形的邊框顏色

這是一個屏幕截圖的如何我繪製矩形

代碼
CGRect rect = CGRectMake(x, y, aRect.size.width, height); 

CGContextMoveToPoint(context, rect.origin.x, rect.origin.y + radius); 
CGContextAddLineToPoint(context, rect.origin.x, rect.origin.y + rect.size.height); 
CGContextAddLineToPoint(context, rect.origin.x + rect.size.width, rect.origin.y + rect.size.height ); 
CGContextAddLineToPoint(context, rect.origin.x + rect.size.width, rect.origin.y + radius); 
CGContextAddArc(context, rect.origin.x + rect.size.width - radius, rect.origin.y + radius, radius, ((0.0f)/180.0 * M_PI), ((-90.0f)/180.0 * M_PI) , 1); 
CGContextAddLineToPoint(context, rect.origin.x + radius, rect.origin.y); 
CGContextAddArc(context, rect.origin.x + radius, rect.origin.y + radius, radius, ((-90.0f)/180.0 * M_PI), ((180.0f)/180.0 * M_PI), 1);  

CGContextClip(context); 

關於這個問題的另一個奇怪的事情是它似乎只是影響iPhone 5和5s,又名4「屏幕只有

顏色被設置一次,就我所看到的,爲什麼這將是任何幫助將apreciated被設定後,它沒有操縱

+0

您是如何最終解決您的問題的? – SwiftArchitect

回答

0

在顏色本身不存在差異 ,但在的實際位置(原點),尺寸(尺寸),您的矩形,或兩者。

在屏幕截圖中,它們自然是反鋸齒的。

這可能是因爲:

  1. 的X,Y,寬度&高度是不是所有的四個離散的值(整數)。像素或拉伸離屏緩衝器之間
  2. 線描落在一個結構不良視網膜離屏緩衝器(抗鋸齒
  3. 繪圖?請參閱this post
+0

我試過改變矩形到CGRect矩形= CGRectMake(0,80,30,0); 然而這並沒有改變任何東西,或者我誤解你的意思是將原點和大小改爲整數? – Jetpack

+0

在放大下查看您的屏幕截圖,我發現顏色是正確的,但鋸齒不同於下一個圓形。邊緣的厚度不是恆定的,導致出現不同的顏色。我已將上面的代碼片段複製到自己的代碼中,並且能夠在非視網膜顯示器上重現相同的問題。該代碼沒有錯;你在屏幕外的緩衝區工作,不符合分辨率或尺寸?拉伸圖像可能? – SwiftArchitect