-1

もっと一般的な質問があります。をサブクラス化するカスタム クラスがありUIViewます。「-drawRect」をオーバーライドして、正常に行った線に点を描画します。ここで、アニメーション化するクラス内で別の UIView オブジェクトを宣言します。アニメーションで動かしたいのは白い円のアウトラインでなければならないので、UIViewタイプにしたいのです。しかし、どうすればその中に描くことができますか?たとえば、他に 3 つの同様のケースがある場合はどうなりますか? つまり、コンポーネントのクラス内にすべての機能を保持し、1 つまたは複数のUIViewサブビューのカスタム描画を行いたいということです。概念レベルで何かが欠けていると思います。

ActionScript 3 では、次のようにします。

var first:MovieClip = new MovieClip();   
first.graphics...
......
var nTh:MovieClip = new MovieClip();
nTh.graphics...

これが私が達成したいことです(私が言ったように、私はすでに内部のドットの描画を作成しましたが、-drawRect後でアニメーション化する必要がある大きな円を作成したいと思います): 例

4

1 に答える 1

1

ラップトップなしで数日間の苦労と数週間の後、私は戻ってきて、私がどのように問題を解決したかを示すことにしました。これが誰かの役に立てば幸いです。-drawRect を気にしなくても、非常に簡単な解決策のように見えました。私がしたことは、UIView インスタンスを作成し、その境界と位置を -initWithFrame に設定することです。

//circleFrameSideSize will serve as the diameter of the circle
UIView *circle = [[UIView alloc] initWithFrame:CGRectMake(0, circleYPos, circleFrameSideSize, circleFrameSideSize)];
circle.layer.borderColor = [UIColor whiteColor].CGColor;
circle.layer.borderWidth = 1;
//here we do the trick for making the circle with using layer's corner radius
circle.layer.cornerRadius = circleFrameSideSize/2;
[self addSubview:circle];

それでこれです。長方形や円などの図形が必要になるたびに、このアプローチを使用します。

PS: 長い間苦労してきたものに反対票を投じた理由がわかりませんでした..

于 2013-11-11T09:04:41.673 に答える