斯威夫特 - 圆形按钮

时间:2016-06-24 04:49:14

标签: ios swift button uikit-dynamics

我想在swift中创建几个圆形按钮,碰撞检测和重力作用于它们。但每当我这样做时,在碰撞过程中它们就像一个正方形,(我尝试将图像添加到按钮或通过代码创建它但结果保持不变),所以任何人都可以提供帮助,因为我想创建圆形按钮像碰撞或坠落时的圆形一样。

3 个答案:

答案 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可以工作。