I have a strange problem when I try to draw rectangles which overlap one another. See the image below:
As you can see, the top line is ticker than others (bottom and vertical ones), in particular ticker than the line separating the rectangles. I used the following code:
for (int i = 0; i < 7; i++)
{
(...)
CGContextBeginPath(context);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextSetLineWidth(context, self.cellBorder);
CGRect dayRect;
if (i > 0)
dayRect = CGRectMake(i*cellWidth+self.marginX - 1, 0, cellWidth, cellHeight);
else
dayRect = CGRectMake(i*cellWidth+self.marginX , 0, cellWidth, cellHeight);
CGContextStrokeRect(context, dayRect);
}
Any suggestion?
The reason the top line is thinner than the other ones is that you have a
self.cellBorder
line thickness that is greater than 0 and you are drawing that on a line wherey = 0
. When you do this, you will only see half of the line's thickness since the other half is above the drawing rect. To fix this, you simply need to draw your top lines at the y-positionself.cellBorder / 2
. Here's how the code would change: