2

我想pentagon在 iOS中绘制一个UISliders作为circumradii(一组五个UISliders朝不同方向并从五边形中心出发的)。目前我已经UISliders使用一个共同的anchorPoint:setAnchorPoint)旋转了五个,但它们似乎不是来自一个共同点。我该怎么办?我需要开始使用自定义控件吗?我Quartz2D还能使用什么?一些具体的指标会很有用(请不要只说“使用Quartz2D”)

这是我取得的成就Imgur

这就是我想要实现的Imgur

4

2 回答 2

1

我将各种滑块定义为 IBOutletCollection,因此我可以将它们作为控制器中的数组进行访问。然后我在viewWillAppear:

CGPoint viewCenter = self.view.center;

for (NSInteger i = 0, count = self.sliders.count; i < count; ++i) {
    UISlider *slider = self.sliders[i];

    CGFloat angle = 2.0f * M_PI / count;

    CALayer *layer = slider.layer;
    layer.anchorPoint = CGPointMake(0.0f, 0.5f);
    layer.position = viewCenter;
    layer.transform = CATransform3DMakeRotation(i * angle - M_PI_2, 0.0f, 0.0f, 1.0f);
}

这是结果的屏幕截图:

外圆滑块

这是你想要的吗?

于 2013-07-08T12:58:11.147 回答
0

我会试着转动滑块。以下代码应该会有所帮助:

firstSlider.transform=CGAffineTransformRotate(firstSlider.transform,72.0/180*M_PI);
secondSlider.transform=CGAffineTransformRotate(secondSlider.transform,144.0/180*M_PI);
//and so on

72.0/180*M_PI是度数到弧度的转换。

希望能帮助到你。

PS附近没有mac来检查它是否工作

于 2013-07-08T12:10:07.873 回答