views:

1251

answers:

2

So using this link: http://stackoverflow.com/questions/805872/how-do-i-draw-a-shadow-under-a-uiview

And this link: http://iphonedevelopment.blogspot.com/2008/11/creating-transparent-uiviews-rounded.html

I came upon this implementation:

- (void)drawRect:(CGRect)rect {

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSaveGState(context);
CGContextSetShadow(context, CGSizeMake(-15.0f, 20.0f), 5.0f);

CGContextSetLineWidth(context, strokeWidth);
CGContextSetStrokeColorWithColor(context, self.strokeColor.CGColor);
CGContextSetFillColorWithColor(context, self.rectColor.CGColor);

CGRect rrect = self.bounds;

CGFloat radius = cornerRadius;
CGFloat width = CGRectGetWidth(rrect);
CGFloat height = CGRectGetHeight(rrect);


// Make sure corner radius isn't larger than half the shorter side
if (radius > width/2.0)
 radius = width/2.0;
if (radius > height/2.0)
 radius = height/2.0;    

CGFloat minx = CGRectGetMinX(rrect);
CGFloat midx = CGRectGetMidX(rrect);
CGFloat maxx = CGRectGetMaxX(rrect);
CGFloat miny = CGRectGetMinY(rrect);
CGFloat midy = CGRectGetMidY(rrect);
CGFloat maxy = CGRectGetMaxY(rrect);
CGContextMoveToPoint(context, minx, midy);
CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFillStroke);

CGContextRestoreGState(context);

}

However when it draws, the shadow is clipped to the bounds of the view. I have tried setting self.clipsToBounds = NO however this doesn't affect the problem.

A: 

Try decreasing the size of the inner square so that the edges of the square arent near the edge of the view.

corydoras
A: 

Hi samuraisam,

I am facing the same issue. Were you able to overcome this issue?

Maulik
yes, i shall be posting the code to soon!
samuraisam
waiting for your post.I still havent found out the way.
Maulik
Do not post code requests as answers. Thanks.
Alex Reynolds