物理仿真中的圆形碰撞

在上一节中发现了个问题,几个球之间的碰撞看似是球与球之间的碰撞,实则是矩形之间的碰撞。这一节就解决这个问题。

UIDynamics 的第一个版本带有碰撞系统只支持矩形。这可以理解,因为UIViews都是矩形架构,但是圆形的却不常见,更不用说优化一个自定义的贝塞尔曲线。在iOS 9中,UIDynamicItem协议里加了一个新属性:UIDynamicItemCollisionBoundsType,支持以下枚举类型:

物理仿真中的圆形碰撞

这个属性是只读的,如果我们想修改它的话,需要提供我们的子类:

物理仿真中的圆形碰撞

物理仿真中的圆形碰撞


创建视图的时候使用这个自定义的子类实现就可以了

物理仿真中的圆形碰撞


然后再去做物理仿真就可以了