私はiOSの描画を実験してきました。実践的な演習を行うために、棒グラフコンポーネントを作成しました。以下はクラス図です(まあ、画像のアップロードは許可されていませんでした)ので、言葉で書かせてください。UIViewから継承するNGBarChartViewには、NGBarChartViewDataSourceとNGBarChartViewDelegateの2つのプロトコルがあります。コードはhttps://github.com/mraghuram/NELGPieChart/blob/master/NELGPieChart/NGBarChartView.mにあります
棒グラフを描画するために、各棒グラフを異なるCAShapeLayerとして作成しました。これを行った理由は2つあります。1つはUIBezierPathを作成し、それをCAShapeLayerオブジェクトにアタッチすることです。2つは、[Layer hitTest]メソッドを使用して、barItemがタッチされたかどうかを簡単に追跡できます。コンポーネントはかなりうまく機能します。ただし、棒グラフを描画するために採用したアプローチには満足していません。したがって、このメモ。以下について専門家の意見が必要です
- CAShapeLayerを使用してBarItemsを作成することにより、私は実際にはUIGraphicsContextを使用していませんが、これは優れたデザインですか?
- 私のアプローチでは、UIView内にいくつかのCALayerを作成します。パフォーマンスに基づいて、UIViewで作成できるCALayerの数に制限はありますか?
- CGContext *メソッドを使用するのが適切な代替手段である場合、特定のパスにアクセスしたかどうかを識別する正しい方法は何ですか。
- タップしたときにバーが点滅するなど、アニメーションの観点からは、レイヤーデザインまたはCGContextデザインの方が優れています。
ヘルプは非常に高く評価されています。ところで、あなたは私のコードとコメントを自由に見ることができます。改善のための提案を喜んで受け入れます。
最高、ムラリ