0

XCode 4.3.2 を使用して、新しいクラスTestViewが追加され (TestView.hおよび.m追加され)、それが のサブクラスでありUIView、メソッド内で描画しているdrawRect場合。ファイルViewController.xibをクリックし、Identity Inspector をクリックし、カスタム クラスを から に変更する必要があるのはUIViewなぜTestViewですか?

とはどういう意味ですか? それが変更されていない場合はどうなりますか? のコードはdrawRect引き続きTestView.m簡単に呼び出すことができますか? または、すべてのコードをTestView.mに移動できViewController.mますか? もしそうなら、どのようにそれを行うTestViewことUIViewViewControllerできUIViewControllerますかViewController?drawRect

4

1 に答える 1

1

カスタム描画を行う一般的な方法は、UIView サブクラスを実装し、drawRect を実装することです。その描画を可視化する唯一の方法は、View Controller によって制御されるが描画されないビュー階層にカスタム ビューを追加することです。

xib は、ユーザー インターフェイスを記述します。UIView サブクラス (TestView など) を xib に追加すると、そのクラスのインスタンスが割り当てられ、ビュー階層にアタッチされます。クラス名は、どのクラスをインスタンス化する (インスタンスを作成する) かを知るために必要です。

drawRect は、ビューの一部またはすべてを描画する必要があるとシステムが判断したときにシステムによって呼び出される UIView メソッドです。アプリケーションはそれを直接呼び出しません。彼らはそれを実装し、システムにそれを呼び出させます。

ViewController は何も描画せず、ビューの階層のみを管理します。したがって、ビュー コントローラーに drawRect を実装しても意味がありません。

于 2012-04-19T04:08:17.207 に答える