CanvasView.m 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. ////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright 2016 Realm Inc.
  4. //
  5. // Licensed under the Apache License, Version 2.0 (the "License");
  6. // you may not use this file except in compliance with the License.
  7. // You may obtain a copy of the License at
  8. //
  9. // http://www.apache.org/licenses/LICENSE-2.0
  10. //
  11. // Unless required by applicable law or agreed to in writing, software
  12. // distributed under the License is distributed on an "AS IS" BASIS,
  13. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. // See the License for the specific language governing permissions and
  15. // limitations under the License.
  16. //
  17. ////////////////////////////////////////////////////////////////////////////
  18. #import "CanvasView.h"
  19. #import "DrawPath.h"
  20. #import "UIColor+Realm.h"
  21. @implementation CanvasView
  22. - (void)didMoveToSuperview {
  23. [super didMoveToSuperview];
  24. self.backgroundColor = [UIColor whiteColor];
  25. }
  26. - (void)drawPath:(DrawPath *)path withContext:(CGContextRef)context {
  27. UIColor *swatchColor = [UIColor realmColors][path.color];
  28. CGContextSetStrokeColorWithColor(context, [swatchColor CGColor]);
  29. CGContextSetLineWidth(context, path.path.lineWidth);
  30. CGContextAddPath(context, [path.path CGPath]);
  31. CGContextStrokePath(context);
  32. }
  33. - (void)drawRect:(CGRect)rect {
  34. CGContextRef context = UIGraphicsGetCurrentContext();
  35. for (DrawPath *path in self.paths) {
  36. [self drawPath:path withContext:context];
  37. }
  38. }
  39. - (void)clearCanvas {
  40. CGContextRef context = UIGraphicsGetCurrentContext();
  41. CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
  42. CGContextFillRect(context, self.bounds);
  43. [self setNeedsDisplay];
  44. }
  45. @end