目标:一个正方形视图被分割成两个不规则视图
代码操作:我用了两个view 分别绘制成了两个不规则图形,其中两个不规则图形的view实际大小是红色区域大小
现在我让两个不规则图形都向self.view.center移动到达黄色区域位置
注意
虽然可以通过上篇中提到的在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
}
}