私はビューを作成しました。ユーザーがそれをタッチすると、ビューの状態に基づいてビューを描画したり、後で追加したりしたいと思います。iPhone drawRectビューを描画するために再利用
ドロー/テキスト項目が複数ある場合、drawRectでこれを行うことはできますか?もしそうなら、どのように呼び出すのですか?もしそうでなければ、これを達成するためにどこを見なければならないでしょうか?
事前のおかげで、
スティーブ
私はビューを作成しました。ユーザーがそれをタッチすると、ビューの状態に基づいてビューを描画したり、後で追加したりしたいと思います。iPhone drawRectビューを描画するために再利用
ドロー/テキスト項目が複数ある場合、drawRectでこれを行うことはできますか?もしそうなら、どのように呼び出すのですか?もしそうでなければ、これを達成するためにどこを見なければならないでしょうか?
事前のおかげで、
スティーブ
単純なオブジェクトを描画するための最良の方法は、テキストと同様に、ファイル、または、言う、ソリッドカラーの長方形からの画像は、のサブビューとしてそれらの要素を追加するだけですあなたの意見一般的に、サブビューを追加することで何かをする必要がない限り、drawRect:
メソッドについて心配するのはずっと簡単です。たとえば、いくつかの動的データに基づいて円グラフを作成する場合は、独自の描画ルーチンを記述することができます。そうでない場合は、ビューとサブビューでのみ作業するときは、フォントの色やピクセルの変更など、視覚的な違いを必要とするオブジェクトのプロパティを変更するなど、適切な場合はいつでも自動的にdrawRect:
が自動的に呼び出されますサブビューの座標。ここで
を使用すると、ビューコントローラのloadView
方法のように、ビューに2つのサブビューを追加するかもしれない方法の簡単な例です:
CGRect helloFrame = CGRectMake(10, 10, 100, 50);
UILabel* helloLabel = [[UILabel alloc] initWithFrame:helloFrame];
helloLabel.text = @"hello,";
helloLabel.textColor = [UIColor redColor];
[self.view addSubview:helloLabel];
CGRect worldFrame = CGRectMake(60, 60, 100, 50);
UILabel* worldLabel = [[UILabel alloc] initWithFrame:worldFrame];
worldLabel.text = @"world!";
worldLabel.textColor = [UIColor orangeColor];
[self.view addSubview:worldLabel];
あなたは
[myView setNeedsDisplay];
を呼び出してのUIViewを無効にすることができます
myViewのdrawRectを適切な時間にOSコールで呼び出す予定です。
私の答えを守るには(今は否定的な投票があるので):SEパウエルがdrawRectを考えているかのように疑問を呈します。カスタムビューを構築する唯一の方法は悪い誤解です。私の答えは、より大きな画像を見て、長期的にはコーディングテクニックとして最も役立つ答えを出そうとしています。 – Tyler