在ios中显示圆形格式的UIButtons?

时间:2013-03-15 07:57:34

标签: ios objective-c uibutton

我们如何以圆形格式显示UIButtons,以便在我们点击时 特别是UIButton它会移到中间位置吗?

circular buttons

2 个答案:

答案 0 :(得分:2)

您可以使用touch recognition gesture,也可以只使用 clearcolor 背景将UIImage以及少数自定义UIButton自定义。

对于中心图片,您只需根据所选按钮更改UIImageView中的图片

修改

解决方案2:

#import <QuartzCore/QuartzCore.h>
myButton.layer.cornerRadius = 8;

也看看这篇文章。 Make fix size round button as image in iphone sdk

答案 1 :(得分:2)

创建按钮:

double perAngle = 2 * M_PI / BUTTONS_COUNT;

for (int i = 0; i < BUTTONS_COUNT; i++) {
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(sin(perAngle * i) + basePoint.x, cos(perAngle * i) + basePoint.y, yourWidth, yourHeight)];

    [btn addTarget:self action:@selector(moveButton:) forControlEvents:UIControlEventTouchUpInside];

    [yourView addSubView:btn];
}

移动按钮:

- (void)moveButton:(UIButton *)btn
{
    [UIView animateWithDuration:2.0 animations:^{
        btn.center = basePoint;
    }];
}

basePoint是您的通告中心点。它只是一个演示代码,你应该处理移动和异常等等。

PS:这个代码是一个完整的圆形,如果你的是半圆形,你应该用自己来计算角度,这很容易