CAShapeLayer
に、私は閉じたUIBezierPath
を描画しました。私はfillColor
を設定することでこの図形を塗りつぶすことができますが、図形をグラデーションで塗りつぶしたいと思います。 CAGradientLayer
をベジェパスで輪郭が描かれた図形にクリップするように設定するにはどうすればよいですか?iOS上にグラデーションを含むパスを塗りつぶし
8
A
答えて
5
あなたが望むのはマスクです。
[gradientLayer setMask:shapeLayer];
19
ドラフトの例次のようになります。:
...
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor *gradientColor = [UIColor colorWithRed:0.51 green:0.0 blue:0.49 alpha:1.0];
NSArray *gradientColors = [NSArray arrayWithObjects:
(id)[UIColor blueColor].CGColor,
(id)gradientColor.CGColor,
(id)[UIColor redColor].CGColor, nil];
CGFloat gradientLocations[] = {0, 0.5, 1};
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)gradientColors, gradientLocations);
UIBezierPath *roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 200, 200) cornerRadius:6];
CGContextSaveGState(context);
[roundedRectanglePath fill];
[roundedRectanglePath addClip];
CGContextDrawLinearGradient(context, gradient, CGPointMake(10, 10), CGPointMake(210, 10), 0);
CGColorSpaceRelease(colorSpace);
CGGradientRelease(gradient);
...
関連する問題
- 1. ハイチャートエリアチャートのグラデーションの塗りつぶし
- 2. iOS、扇形を塗りつぶす放射状のグラデーション
- 3. CoreGraphics塗りつぶしのパスとストロークパス
- 4. アニメーションのSvgパス塗りつぶし
- 5. CGContextでグラデーションを使用してシェイプを塗りつぶす
- 6. Mathematicaでグラフィックスを使ったグラデーション塗りつぶし
- 7. IBDesignable UIViewを塗りつぶしないグラデーション
- 8. グラデーションを塗りつぶしたMathplotlib描画三角形
- 9. Android:グラデーションの塗りつぶしの色で円弧を描く
- 10. SVGの使用とグラデーションを塗りつぶし
- 11. 列の値に基づくグラデーションの塗りつぶし
- 12. 2倍を含む配列で配列を塗りつぶす
- 13. matplotlibバーにグラデーションを塗りつぶす方法は?
- 14. ggplotグラデーションの塗りつぶしが機能しない
- 15. グラデーションの塗りつぶしとキャンバスのサイズ?
- 16. 反応ハイチャートの線グラフのグラデーション塗りつぶし
- 17. 3方向色グラデーションの塗りつぶしr
- 18. フィールドを塗りつぶし
- 19. toolStripDropDownButtonを塗りつぶし
- 20. SVG塗りつぶしのパス - 折り返してオーバーラップが塗りつぶされていない場合
- 21. モーダルディビジョンは、以下のフォールドを含むウィンドウ全体を塗りつぶします。
- 22. WPF Chartsがグラデーションの塗りつぶしを取り除きます
- 23. 値グラデーションに基づいてボックスのプロットの色を塗りつぶし
- 24. ggplot:geom_polygon内にグラデーションの塗りつぶしを作成する方法
- 25. コアグラフィックを使用してグラデーションの塗りつぶしカラーでUIImageを取得
- 26. 角を丸くして境界線とグラデーションを塗りつぶした画像をCで塗ります。
- 27. jveryで塗りつぶし色でSvgパスを選択
- 28. パス塗りつぶしをアニメートする - Silverlight
- 29. ggplot2でマップ上にポリゴンの色を塗りつぶし
- 30. ベースマップ上に塗りつぶしたポリゴンを描く__getitem__エラー
これはいいですが、あなたはまたべきCAGradientlayerはそうは次のようにあなたの形状の境界にそれをクリッピングすることができ-setMask方法を持っていますグラデーションとカラースペースを解放します。 – Sulthan
おかげで、オリジナルのポストはマスクを特色にするので、私は彼らに – WhiteTiger
を置くのを忘れて、私はまた、次のように追加: 'CGContextAddPath(文脈、roundedRectanglePath.CGPath); CGContextDrawLinearGradient''の前に ' ;' 'CGContextClip(文脈) – maggix