0

たくさんの線を引く必要があります。

線の描画には UIBezierPath を使用し、グラデーションには小さな 5x10 パターン イメージを使用しています。以下はコードの一部です。

 l1 = [UIBezierPath bezierPath];
    [l1 moveToPoint:CGPointMake(76, 373)];  
    [l1 addLineToPoint:CGPointMake(940, 373)];   


    CAShapeLayer *pathLayer = [CAShapeLayer layer];
    CGRect pathRect = self.view.frame;

    path = l1;
    pathLayer.frame = self.view.bounds;
    pathLayer.bounds = pathRect;
    pathLayer.geometryFlipped = NO;
    pathLayer.path = path.CGPath;
    pathLayer.strokeColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"line1Pattern.png"]];
    pathLayer.fillColor = nil;
    pathLayer.lineWidth = 8.0f;
    pathLayer.opacity = 1;
    [pathLayer setShadowOffset:CGSizeMake(0, 5)];
    [pathLayer setShadowOpacity:0.5];
    pathLayer.lineCap = kCALineCapRound;
    pathLayer.lineJoin = kCALineJoinRound;
    [pathArray addObject:pathLayer];

    self.pathLayer = pathLayer;

線が(青と赤のように)水平にまっすぐであれば、すべて問題なく、結果は良好です。しかし、傾いた線を描いたり、まっすぐに並べて描いたりすると、結果はうまくいきません。画像へのリンクは次のとおりです: 左側 - 必要なもの、右側 - 結果の結果:

だから、私が理解しているように、グラデーションを回転させて線に合わせる必要があります。しかし、私はそれを実現する方法を想像できません。

また、一部の線は、次のグラフのようにジグザグ形になる場合があります:

誰でもこの問題を解決できますか? または、線を引く別の方法を提案してください。ありがとう!

4

1 に答える 1

1

水平線のみを描画し、transform で回転させることができます。しかし、曲線が必要な場合は、すべてがはるかに複雑になります。

また、タイル画像の代わりにグラデーションを作成して描画することもできます。

于 2012-06-16T16:43:50.593 に答える