iOS 不规则按钮点击事件(二)

目标:一个正方形视图被分割成两个不规则视图

两个不规则图形.png

代码操作:我用了两个view 分别绘制成了两个不规则图形,其中两个不规则图形的view实际大小是红色区域大小
现在我让两个不规则图形都向self.view.center移动到达黄色区域位置


移动后.png

注意

虽然可以通过上篇中提到的在touchBegan中判断当前touch点是否在不规则图形的path中但是当两个视图移动后 ,由于视图实际大小都是正方形大小,所以一定有一个在上层有一个在下层,这回导致有一个图形可以点,另一个不可点。

解决办法

重写view的pointinside方法这个方法决定了是否响应事件,只需在方法中判断当前点是否在path中就可以 ,如果不在就不响应,根据事件传递链,它会自动找下一层视图看下一层视图是否能响应

 override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        if marginalPath.contains(point)
        {
            return true
        }
        else
        {
            return false
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Auto Layout Guide”。 2 自动布局细则手册 2.1 堆栈视图 接下来的章节展示了如何使用...
    lakerszhy阅读 1,908评论 3 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,588评论 25 709
  • 在iOS开发中经常会涉及到触摸事件。本想自己总结一下,但是遇到了这篇文章,感觉总结的已经很到位,特此转载。作者:L...
    WQ_UESTC阅读 6,178评论 4 26
  • 下午一口气睡了6个小时,现在是有点睡不着了。刚刚看到前同事发了一个朋友圈,大概是她离开了那个公司。从她前几天...
    等我胖了再揍你啊阅读 490评论 0 0
  • 今天弟弟期末考试,六年级,考完出来,说:书本上考的很少,大部分都是课外阅读书上的。“你不会?”“会呀,太简单...
    奥特曼8阅读 438评论 0 1