UICollisionBehavior:滚球?

时间:2013-11-05 17:17:50

标签: ios uikit-dynamics uicollisionbehavior

我正在尝试使用UIKit Dynamics制作物理动画的iOS iPhone应用程序。这是一场篮球比赛,你可以把球扔进篮筐。但是,我无法弄清楚如何使球变成圆形(由UICollisionBehaviorUIDynamicAnimator以这种方式处理)?

我试过了:ball.layer.cornerRadius = ball.frame.size.width / 2.0;

但这只是将球拉到圆形。它实际上并不是这样的。我也知道我可以使用addBoundaryWithIdentifier:forPath:

绘制边界

但我无法弄清楚如何在UIView(我的情况下为UIImageView)周围放置一个不仅仅是一个矩形的边界?我知道我可以使用SpriteKit来做到这一点,但是我已经使用UIKit Dynamics为篮球游戏编写了几个小时的代码,如果有一个简单的修复,我不想切换。谢谢!

2 个答案:

答案 0 :(得分:3)

iOS 9中,您现在可以完全按照自己的意愿行事。

UIView子类中,您可以添加以下内容:

- (UIDynamicItemCollisionBoundsType)collisionBoundsType
{
    return UIDynamicItemCollisionBoundsTypeEllipse;
}

答案 1 :(得分:2)

您无法使用UIKit Dynamics执行此操作。 UIDynamicItem协议实现要求实现协议的对象提供bounds的{​​{1}}属性。

你必须去CGRect