2

pentagoniOS でUISliders(異なる方向に進み、五角形の中心から始まるcircumradii5 つのセット) を使用して描画したいと考えています。UISliders現在UISliders、共通のanchorPoint( :setAnchorPoint) を使用して 5 つを回転させていますが、それらは共通点から発生していないようです。これについてどうすればよいですか?カスタム コントロールの作業を開始する必要がありますか? 他に何がQuartz2D使えますか?いくつかの特定のインジケーターが役立ちます (「使用する」とだけ言わないでくださいQuartz2D)

ここに私が達成したものがあります

そして、これが私が達成したいことです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 に答える