2

UIKit を使用して回転するホイール コントロールを作成するために、次のチュートリアルを実行しました。 http://www.raywenderlich.com/9864/how-to-create-a-rotating-wheel-control-with-uikit

チュートリアルの「ホイールのレイアウト」セクションでは、ホイールは円の左側から時計回りに描かれています (赤いラベルのスクリーンショットを参照)。したがって、左のサイトから 0 から始まります。

でも。値が 0 の円の適切な場所から開始したいと思います。スクリーンショットでは 4 になっています。残念ながら、これを達成する方法がわかりません。もちろん、数字や絵の回転は今とは正反対です。したがって、4 を 180 度回転させたところは正常なはずです。

誰でもここで私を助けることができますか? 素晴らしいことだ。

よろしく

現在の drawWheel 関数:

// 3 - Create the sectors
for (int i = 0; i < _numberOfSections; i++) {
    // 4 - Create image view
    UIImageView *im = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segment.png"]];
    im.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
    im.layer.position = CGPointMake(_container.bounds.size.width/2.0-_container.frame.origin.x,
                                    _container.bounds.size.height/2.0-_container.frame.origin.y);
    im.transform = CGAffineTransformMakeRotation((angleSize * i) + M_PI);
    im.alpha = minAlphavalue;
    im.tag = i;
    if (i == 0) {
        im.alpha = maxAlphavalue;
    }
    // 5 - Set sector image
    UIImageView *sectorImage = [[UIImageView alloc] initWithFrame:CGRectMake(12, 100, 40, 40)];
    sectorImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"icon%i.png", i]];
    [im addSubview:sectorImage];
    // 6 - Add image view to container
    [_container addSubview:im];
}

現在のホイールのスクリーンショット

4

1 に答える 1

0

テストされていませんが、追加することはできませんM_PIか?

- (void) drawWheel {
    container = [[UIView alloc] initWithFrame:self.frame];
    CGFloat angleSize = 2*M_PI/numberOfSections;
    for (int i = 0; i < numberOfSections; i++) {
        UILabel *im = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
        im.backgroundColor = [UIColor redColor];
        im.text = [NSString stringWithFormat:@"%i", i];
        im.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
        im.layer.position = CGPointMake(container.bounds.size.width/2.0, 
                                        container.bounds.size.height/2.0); 
        // ===== Add M_PI Here! =====
        im.transform = CGAffineTransformMakeRotation((angleSize * i) + M_PI);
        // ==========================
        im.tag = i;
        [container addSubview:im];
    }
    container.userInteractionEnabled = NO;
    [self addSubview:container];
}
于 2013-02-20T13:36:22.240 に答える