@interface ViewController ()
@property (nonatomic, strong) CALayer *movableCircleLayer
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad]
self.movableCircleLayer = [CALayer layer]
// 指定大小
self.movableCircleLayer.bounds = CGRectMake(0, 0, kLayerWidth, kLayerWidth)
// 指定中心点
self.movableCircleLayer.position = self.view.center
// 变成圆形
self.movableCircleLayer.cornerRadius = kLayerWidth / 2
// 指定背景色
self.movableCircleLayer.backgroundColor = [UIColor blueColor].CGColor
// 设置阴影
self.movableCircleLayer.shadowColor = [UIColor grayColor].CGColor
self.movableCircleLayer.shadowOffset = CGSizeMake(3, 3)
self.movableCircleLayer.shadowOpacity = 0.8
[self.view.layer addSublayer:self.movableCircleLayer]
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
CGFloat width = kLayerWidth
if (self.movableCircleLayer.bounds.size.width <= kLayerWidth) {
width = kLayerWidth * 2.5
}
// 修改大小
self.movableCircleLayer.bounds = CGRectMake(0, 0, width, width)
// 将中心位置放到点击位置
self.movableCircleLayer.position = [[touches anyObject] locationInView:self.view]
// 再修改成圆形
self.movableCircleLayer.cornerRadius = width / 2
}
@end

#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong) CALayer *blueLayer;
@property (nonatomic,strong) CALayer *redLayer;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_blueLayer = [CALayer layer];
_blueLayer.frame = CGRectMake(100, 300, 100, 100);
[self.view.layer addSublayer:_blueLayer];
_blueLayer.backgroundColor = [UIColor blueColor].CGColor;
_redLayer = [CALayer layer];
_redLayer.frame = CGRectMake(0, 0, 50, 50);
[_blueLayer addSublayer:_redLayer];
_redLayer.backgroundColor = [UIColor redColor].CGColor;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
_redLayer.anchorPoint = CGPointMake(1, 1);
_redLayer.position = CGPointMake(20, 20);
}
@end
