简单的得到当前点击的是哪一个UIVIew或者CALayer


图是这样的,我上面蓝色的是一个CALayer,白的的是个UIView

    @property (weak, nonatomic) IBOutlet UIView *white;
    @property (strong, nonatomic) CALayer *blueLayer;


    _blueLayer = [CALayer layer];
    _blueLayer.frame = CGRectMake(50, 50, 100, 100);
    _blueLayer.backgroundColor = [UIColor blueColor].CGColor;
    [_white.layer addSublayer:_blueLayer];
图1.1.png

通过简单的hitTesting来获取点击的是哪一个视图

首先通过CGPoint point = [[touches anyObject] locationInView:self.view];获取到点击的点的位置,然后使用CALayer *layer = [self.view.layer hitTest:point];获取当点点击的点属于哪一个CALayer,通过判断即可获取到当前点击的是哪一个CALayer或者View

if (layer == self.blueLayer){
    //do something
} else if (layer == self.white.layer) {
    //do something
}
效果图.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,572评论 6 30
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 3,802评论 1 4
  • 前言 本文只要描述了iOS中的Core Animation(核心动画:隐式动画、显示动画)、贝塞尔曲线、UIVie...
    GitHubPorter阅读 3,661评论 7 11
  • "小画板程序"完成"小画板"程序。 下载地址:http://git.oschina.net/changyou/my...
    _浅墨_阅读 702评论 0 5