BDFaceCircleView.m 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //
  2. // CircleView.m
  3. // FaceSDKSample_IOS
  4. //
  5. // Created by Tong,Shasha on 2017/8/31.
  6. // Copyright © 2017年 Baidu. All rights reserved.
  7. //
  8. #import "BDFaceCircleView.h"
  9. @implementation BDFaceCircleView
  10. - (instancetype)initWithFrame:(CGRect)frame
  11. {
  12. self = [super initWithFrame:frame];
  13. if (self) {
  14. self.backgroundColor = [UIColor clearColor];
  15. }
  16. return self;
  17. }
  18. - (void)setConditionStatusFit:(BOOL)conditionStatusFit
  19. {
  20. if (_conditionStatusFit != conditionStatusFit) {
  21. _conditionStatusFit = conditionStatusFit;
  22. __weak typeof(self) weakSelf = self;
  23. dispatch_async(dispatch_get_main_queue(), ^{
  24. [weakSelf setNeedsDisplay];
  25. });
  26. }
  27. }
  28. // Only override drawRect: if you perform custom drawing.
  29. // An empty implementation adversely affects performance during animation.
  30. - (void)drawRect:(CGRect)rect {
  31. CGContextRef context = UIGraphicsGetCurrentContext();
  32. CGContextSetLineWidth(context, 4);
  33. if (!self.conditionStatusFit) {
  34. CGContextSetStrokeColorWithColor(context, BackgroundColor.CGColor);
  35. CGContextAddArc(context, self.circleRect.origin.x+self.circleRect.size.width/2.0, self.circleRect.origin.y+self.circleRect.size.height/2.0, self.circleRect.size.width/2.0-1, 0, 2*M_PI, 0);
  36. CGContextDrawPath(context, kCGPathStroke);
  37. CGContextSetStrokeColorWithColor(context, OutSideColor.CGColor);
  38. CGFloat lengths[] = {12,10};
  39. CGContextSetLineDash(context, 0, lengths, 2);
  40. CGContextAddArc(context, self.circleRect.origin.x+self.circleRect.size.width/2.0, self.circleRect.origin.y+self.circleRect.size.height/2.0, self.circleRect.size.width/2.0-1, 0, 2*M_PI, 0);
  41. CGContextDrawPath(context, kCGPathStroke);
  42. }else {
  43. CGContextSetStrokeColorWithColor(context, OutSideColor.CGColor);
  44. CGContextAddArc(context, self.circleRect.origin.x+self.circleRect.size.width/2.0, self.circleRect.origin.y+self.circleRect.size.height/2.0, self.circleRect.size.width/2.0-1, 0, 2*M_PI, 0);
  45. CGContextDrawPath(context, kCGPathStroke);
  46. }
  47. }
  48. @end