我想在swift中创建几个圆形按钮,碰撞检测和重力作用于它们。但每当我这样做时,在碰撞过程中它们就像一个正方形,(我尝试将图像添加到按钮或通过代码创建它但结果保持不变),所以任何人都可以提供帮助,因为我想创建圆形按钮像碰撞或坠落时的圆形一样。
答案 0 :(得分:0)
尝试 OBShapedButton
这是第三方类,可用于不同的形状类型按钮,使用此类创建的按钮充当您给按钮的图像形状。
https://github.com/ole/OBShapedButton
要在storyboard或xib文件中使用此功能,只需将OBShapedButton
的自定义类提供给UIButton
。
或以编程方式
obj_OBShapedButton = [OBShapedButton buttonWithType:UIButtonTypeCustom];
[obj_OBShapedButton setFrame:CGRectMake(10, 10, 160,161)];
[obj_OBShapedButton setImage:[UIImage imageNamed:@"button-normal.png"] forState:UIControlStateNormal];
[obj_OBShapedButton addTarget:self action:@selector(Buton_action) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:obj_OBShapedButton];
答案 1 :(得分:0)
要真正回答原来的问题:
自iOS 9发布以来,您现在可以将碰撞形状更改为圆形(或任何其他形状)。
在UIButton
子类中,您可以添加以下内容:
- (UIDynamicItemCollisionBoundsType)collisionBoundsType
{
return UIDynamicItemCollisionBoundsTypeEllipse;
}
这会将碰撞边界设置为圆形而不是默认矩形。
答案 2 :(得分:-1)
如果存在碰撞和重力,请改用SpriteKit。在那里创建任何形状,因为SKNode可以工作。