iOS视图移动到点击位置,如果点击的是视图,则视图变色

@interface ViewController ()

@property (nonatomic, strong) CALayer *colorLayer;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.colorLayer = [CALayer layer];
    self.colorLayer.frame = CGRectMake(0, 0, 100, 100);
    self.colorLayer.position = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height / 2);
    self.colorLayer.backgroundColor = [UIColor redColor].CGColor;
    [self.view.layer addSublayer:self.colorLayer];
    
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    CGPoint point = [[touches anyObject] locationInView:self.view];
    if ([self.colorLayer.presentationLayer hitTest:point]) {
        CGFloat red = arc4random() / (CGFloat)INT_MAX;
        CGFloat green = arc4random() / (CGFloat)INT_MAX;
        CGFloat blue = arc4random() / (CGFloat)INT_MAX;
        self.colorLayer.backgroundColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0].CGColor;
    } else {
        [CATransaction begin];
        [CATransaction setAnimationDuration:4.0];
        self.colorLayer.position = point;
        [CATransaction commit];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • final关键字 PHP5 新增的final关键字。如果父类中的方法被声明为final,则在子类中的方法无法覆盖该...
    洞房花猪阅读 231评论 0 0
  • 在每个夜晚来临之际,人们都会停下自己奔忙的脚步,于夜色中停泊在属于自己的港湾。不管这个地方是豪华还是简陋,也不管这...
    雪岭阅读 556评论 0 2
  • 我们都在一个成人的世界。这个世界物欲横流,这个世界金钱至上,或许男盗女娼,这个世界,或许有那么多那么多不美好的一面...
    小天黑阅读 269评论 2 4
  • 终于放假可以休息一下啦,于是乎赶紧煲剧,可是手也不能闲着,于是边随手涂涂画画。 原本只是想试试笔的颜色,顺便练练手...
    melody李小婷阅读 949评论 3 20