0

XoY座標軸を描きたい...軸はCGRectsです..デバイスを回転させると幅が変わるということです...すべての回転でそれらを維持してほしいです。デバイスが横向きではなく縦向きの場合、幅5.0は異なる意味を持ちますか?

コードは次のとおりです。

   CGContextSaveGState(ctx);
    CGContextSetFillColorWithColor(ctx, [[UIColor whiteColor] CGColor]);

    // the axis is a rect ...
    //axis start point
    CGFloat axisStartX = viewBounds.size.width * LEFT_EXCLUSION_LENGTH_PERCENT;
    CGFloat axisStartY = viewBounds.size.height * UNDER_EXCLUSION_LENGTH_PERCENT;

    CGFloat axisLength = viewBounds .size.height - (viewBounds.size.height * OVER_EXCLUSION_LENGTH_PERCENT) - viewBounds.size.height * UNDER_EXCLUSION_LENGTH_PERCENT;
    CGContextAddRect(ctx, CGRectMake(axisStartX, axisStartY, AXIS_LINE_WIDTH, axisLength));



    CGContextFillPath(ctx);
    CGContextRestoreGState(ctx);
4

2 に答える 2

2

この計算であなたが何をしているのかはわかりませんが、viewBounds.size.height は、それが何を表しているかによって、回転時に変化する可能性があります。ただし、向きによって高さが異なる場合は、axisLength も異なります。そして、axisLength は四角形の高さです。

于 2012-11-23T11:02:22.527 に答える
0

rect をすべての方向で同じサイズにしたい場合は、これを行うよりも!

CGContextSaveGState(ctx);
CGContextSetFillColorWithColor(ctx, [[UIColor whiteColor] CGColor]);

// the axis is a rect ...
//axis start point
CGFloat boxSize = MIN(viewBounds.size.width, viewBounds.size.height);
CGFloat axisStartX = boxSize * LEFT_EXCLUSION_LENGTH_PERCENT;
CGFloat axisStartY = boxSize * UNDER_EXCLUSION_LENGTH_PERCENT;

CGFloat axisLength = boxSize - (boxSize * OVER_EXCLUSION_LENGTH_PERCENT) - boxSize * UNDER_EXCLUSION_LENGTH_PERCENT;
CGContextAddRect(ctx, CGRectMake(axisStartX, axisStartY, AXIS_LINE_WIDTH, axisLength));


CGContextFillPath(ctx);
CGContextRestoreGState(ctx);

ここでの考え方は、向きがどうであれ、サイズは同じままで画面上に表示されるということです。

それが役立つことを願っています!

于 2012-11-23T11:02:56.177 に答える