#import "ViewController.h"
#import "SDmoreCircle.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 背景色
self.view.backgroundColor=[UIColor lightGrayColor];
[self.view addSubview:[SDmoreCircle ViewWithCircle:self.view.frame]];
}
#import <UIKit/UIKit.h>
@interface SDmoreCircle : UIView
//
+(instancetype)ViewWithCircle:(CGRect)rect;
-(instancetype)initWithFrame:(CGRect)frame;
@end
#import "SDmoreCircle.h"
@implementation SDmoreCircle
+(instancetype)ViewWithCircle:(CGRect)rect
{
return [[self alloc]initWithFrame:rect];
}
-(instancetype)initWithFrame:(CGRect)frame
{
return [super initWithFrame:frame];
}
-(void)creatCircle:(NSSet *)touches
{
UITouch *touch=[touches anyObject];
CGPoint point=[touch locationInView:self];
CALayer *layer=[CALayer layer];
layer.frame=CGRectMake(point.x-1, point.y-1, 10, 10);
layer.borderColor=[UIColor colorWithRed:arc4random()%255/256.0 green:arc4random()%255/255.0 blue:arc4random()%255/255.0 alpha:1.0].CGColor;
layer.borderWidth=0.5;
layer.cornerRadius=5;
[self setAnimation:layer];
[self.layer addSublayer:layer];
}
-(void)setAnimation:(CALayer *)layer
{
const int max = 20;
if (layer.transform.m11<max) {
[layer setTransform:CATransform3DScale(layer.transform, 1.1, 1.1, 1.0)];
// 其实说的就是_cmd在Objective-C的方法中表示当前方法的selector,正如同self表示当前方法调用的对象实例一样。
[self performSelector:_cmd withObject:layer afterDelay:0.03];
}
else
{
[layer removeFromSuperlayer];
}
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self creatCircle:touches];
}
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self creatCircle:touches];
}
@end