How to align UIButtons within a circle?

后端 未结 1 1560
野的像风
野的像风 2020-12-15 13:54

Say for example I have 20 buttons. How can I add a subView of the UIView of this button in a circular format?

相关标签:
1条回答
  • This will place the buttons around a circle of a given radius at a given center. It will also rotate each button using the transform property of UIView.

    Hope it helps. :)

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        NSArray *buttons = /* you buttons here */
        float curAngle = 0;
        float incAngle = ( 360.0/(buttons.count) )*PI/180.0;
        CGPoint circleCenter = CGPointMake(160, 200); /* given center */
        float circleRadius = 100; /* given radius */
        for (UIButton *button in buttons)
        {
            CGPoint buttonCenter;
            buttonCenter.x = circleCenter.x + cos(curAngle)*circleRadius;
            buttonCenter.y = circleCenter.y + sin(curAngle)*circleRadius;
            button.transform = CGAffineTransformRotate(button.transform, curAngle);
            button.center = buttonCenter;
            [self.view addSubview:button];
    
            curAngle += incAngle;
        }
    }
    

    Result:

    0 讨论(0)
提交回复
热议问题