iOS の初心者向けの質問です。Core Graphics について学び始めたばかりですが、実際のビューにどのように統合されているのかまだわかりません。
そこで、CGLayer ref を作成し、その上にいくつかのベジエ曲線を描画してから、CGLayer を返すメソッドを用意しました。これが私の手順の非常に要約されたバージョンです:
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGLayerRef layer = CGLayerCreateWithContext(ctx, CGSizeMake(300.0,300.0), NULL);
CGContextRef layerCtx = CGLayerGetContext(layer);
次に、SVG ファイルを解析して動的に生成されるベジェ フィルをいくつか追加します。
SVG が適切に解析されていることを既に確認しており、このコードhttp://ponderwell.net/2011/05/converting-svg-paths-to-objective-c-paths/を使用してパスの指示を解析しています。 (パス タグの d パラメータから) UIBezierPath オブジェクトに
だから私は塗りつぶしを作成することから始めます
CGColorRef color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0].CGColor;
CGContextSetFillColorWithColor(layerCtx, color);
次に、UIBezierPath を追加します
SvgToBezier *bezier = [[SvgToBezier alloc] initFromSVGPathNodeDAttr:pathAttr rect:CGRectMake(0, 0, 300, 300)];
UIBezierPath *bezierPath = bezier.bezier;
CGContextAddPath(layerCtx, bezierPath.CGPath);
CGContextDrawPath(layerCtx, kCGPathFill);
そして最後に CGLayerRef を次のように返します
return layer;
私の質問: このレイヤー ref を取得したので、それを UIView (または描画するのに最適なオブジェクトの種類) に描画します。
最終的な目標は、レイヤーを UITableViewCell に表示することです。
また、上で説明したメソッドは、私が最初から作成したクラス (NSObject から継承) に存在します。このメソッドを使用してレイヤー参照をクラス インスタンスのプロパティに割り当てる別のメソッドがあります。
テーブルビューに接続されたView Controllerからこのインスタンスを作成します。次に、うまくいけば、「cellForRowAtIndexPath」メソッド内で UITableView セルにレイヤーを追加します。
関連情報がすべて含まれていることを願っています。ご協力いただきありがとうございます。
乾杯