| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- //
- // JKDotView.m
- // Lock
- //
- // Created by Jack on 2016/10/13.
- // Copyright © 2016年 mini1. All rights reserved.
- //
- #import "JKDotView.h"
- @interface JKDotView ()
- @property (nonatomic,strong) CAShapeLayer *inscribedCircleLayer;///<内切圆
- @end
- @implementation JKDotView
- -(CAShapeLayer *)inscribedCircleLayer{
- if (!_inscribedCircleLayer) {
- _inscribedCircleLayer = [CAShapeLayer layer];
- _inscribedCircleLayer.strokeColor = self.strokColor.CGColor;
- _inscribedCircleLayer.fillColor = [UIColor clearColor].CGColor;
- _inscribedCircleLayer.lineWidth = 1.0f;
- }
- return _inscribedCircleLayer;
- }
- - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
-
- self.inscribedCircleLayer.path = [UIBezierPath bezierPathWithOvalInRect:self.bounds].CGPath;
-
- [self.layer addSublayer:self.inscribedCircleLayer];
-
- }
- - (instancetype)initWithFrame:(CGRect)frame {
- if (self = [super initWithFrame:frame]) {
- self.backgroundColor = [UIColor clearColor];
- [self.layer setNeedsDisplay];
- }
- return self;
- }
- - (instancetype)initWithFrame:(CGRect)frame strokColor:(UIColor *)strokColor fillColor:(UIColor *)fillColor {
- if (self = [super initWithFrame:frame]) {
-
- self.strokColor = strokColor;
- self.fillColor = fillColor;
-
- self.backgroundColor = [UIColor clearColor];
- [self.layer setNeedsDisplay];
-
- }
- return self;
- }
- - (void)setState:(JKDotState)state {
- _state = state;
-
- switch (state) {
- case JKDotStateNormal:{
- _inscribedCircleLayer.strokeColor = self.strokColor.CGColor;
- _inscribedCircleLayer.fillColor = [UIColor clearColor].CGColor;
- }
- break;
- case JKDotStateSelected:{
- _inscribedCircleLayer.strokeColor = self.fillColor.CGColor;
- _inscribedCircleLayer.fillColor = self.fillColor.CGColor;
- }
- break;
-
- default:
- break;
- }
- }
- - (UIColor *)strokColor {
- return _strokColor ? _strokColor : [UIColor blackColor];
- }
- - (UIColor *)fillColor {
- return _fillColor ? _fillColor : [UIColor blackColor];
- }
- @end
|