Guest User

Untitled

a guest
May 20th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. - (void)drawRect:(CGRect)rect {
  2.  
  3. CGContextRef context = UIGraphicsGetCurrentContext();
  4.  
  5. CGContextSaveGState(context);
  6. CGContextSetShadow(context, CGSizeMake(-15.0f, 20.0f), 5.0f);
  7.  
  8. CGContextSetLineWidth(context, strokeWidth);
  9. CGContextSetStrokeColorWithColor(context, self.strokeColor.CGColor);
  10. CGContextSetFillColorWithColor(context, self.rectColor.CGColor);
  11.  
  12. CGRect rrect = self.bounds;
  13.  
  14. CGFloat radius = cornerRadius;
  15. CGFloat width = CGRectGetWidth(rrect);
  16. CGFloat height = CGRectGetHeight(rrect);
  17.  
  18.  
  19. // Make sure corner radius isn't larger than half the shorter side
  20. if (radius > width/2.0)
  21. radius = width/2.0;
  22. if (radius > height/2.0)
  23. radius = height/2.0;
  24.  
  25. CGFloat minx = CGRectGetMinX(rrect);
  26. CGFloat midx = CGRectGetMidX(rrect);
  27. CGFloat maxx = CGRectGetMaxX(rrect);
  28. CGFloat miny = CGRectGetMinY(rrect);
  29. CGFloat midy = CGRectGetMidY(rrect);
  30. CGFloat maxy = CGRectGetMaxY(rrect);
  31. CGContextMoveToPoint(context, minx, midy);
  32. CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
  33. CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
  34. CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
  35. CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);
  36. CGContextClosePath(context);
  37. CGContextDrawPath(context, kCGPathFillStroke);
  38.  
  39. CGContextRestoreGState(context);
  40.  
  41. }
  42.  
  43. view.layer.shadowColor = [UIColor blackColor].CGColor;
  44. view.layer.shadowOffset = CGSizeMake(0, 0);
  45. view.layer.shadowRadius = 4;
  46. view.layer.shadowOpacity = 1;
  47. view.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:view.frame cornerRadius:11].CGPath; // make sure you set that for better performance
Add Comment
Please, Sign In to add comment