如何在一个圆圈内对齐 UIButtons?

Posted

技术标签:

【中文标题】如何在一个圆圈内对齐 UIButtons?【英文标题】:How to align UIButtons within a circle? 【发布时间】:2011-10-14 08:24:34 【问题描述】:

例如,我有 20 个按钮。如何以循环格式添加此按钮的 UIView 的子视图?

【问题讨论】:

参见this answer 了解使用 Swift 和 Auto Layout 约束的现代实现。 【参考方案1】:

这会将按钮放置在给定中心的给定半径的圆周围。 它还将使用 UIView 的 transform 属性旋转每个按钮。

希望对您有所帮助。 :)

- (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;
    

结果:

【讨论】:

@nacho4d 做反向操作?即恢复到 UIButton 的原始状态 原始状态?我没有显示任何原始状态。你能说得更具体点吗? 您将使用什么 curAngle 将数组的第一个按钮放在顶部视图的中间?

以上是关于如何在一个圆圈内对齐 UIButtons?的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道一个 Lat,Lng 点是不是包含在一个圆圈内?

沿 R 中的底部边缘对齐四个“嵌套”圆圈

如何在圆圈范围内反弹物体?

检查点是不是在圆圈内

如何仅在地图上的半径(圆圈)内显示标记?

检查纬度和经度是不是在一个圆圈内