我正在尝试使用UIKit Dynamics制作物理动画的iOS iPhone应用程序。这是一场篮球比赛,你可以把球扔进篮筐。但是,我无法弄清楚如何使球变成圆形(由UICollisionBehavior
和UIDynamicAnimator
以这种方式处理)?
我试过了:ball.layer.cornerRadius = ball.frame.size.width / 2.0;
但这只是将球拉到圆形。它实际上并不是这样的。我也知道我可以使用addBoundaryWithIdentifier:forPath:
但我无法弄清楚如何在UIView
(我的情况下为UIImageView
)周围放置一个不仅仅是一个矩形的边界?我知道我可以使用SpriteKit来做到这一点,但是我已经使用UIKit Dynamics为篮球游戏编写了几个小时的代码,如果有一个简单的修复,我不想切换。谢谢!
答案 0 :(得分:3)
在iOS 9
中,您现在可以完全按照自己的意愿行事。
在UIView
子类中,您可以添加以下内容:
- (UIDynamicItemCollisionBoundsType)collisionBoundsType
{
return UIDynamicItemCollisionBoundsTypeEllipse;
}
答案 1 :(得分:2)
您无法使用UIKit Dynamics
执行此操作。 UIDynamicItem
协议实现要求实现协议的对象提供bounds
的{{1}}属性。
你必须去CGRect
。