与屏障接触时调用函数,但不会发生碰撞。可能吗?

Calling a function upon contact with barrier, but not colliding. Is it possible?

我想知道是否可以在 UIView 接触到碰撞边界时调用一个函数,而不是让它们真正发生碰撞。

当它们接触并让视图穿过边界时是否可以调用函数?

如果是,怎么做?

是的,UIKit 框架提供了一个很好的碰撞检测工具。

要响应 UIKit 动态项目 冲突(例如视图),请配置自定义 class 以采用 UICollisionBehaviorDelegate 协议。然后,在碰撞行为中(UICollisionBehavior class 的实例),将委托设置为自定义 class.

的实例

在上述 UICollisionBehavior 中添加您的视图并使用 addBoundary 方法之一配置您想要的边界。然后,您的代表将收到 collisionBehavior(_:beganContactFor:withBoundaryIdentifier:at:) 协议函数中发生冲突的通知。

(默认的 collisionModeeverything,所以你现在可以安全地忽略这个 属性。)