これはこの質問( IB /Xcode4.5.1およびiOSSimulator6.0でのカスタムUIViewハウツー)のフォローアップですが、読む必要はありません-これはカスタムUIViewを作成するのは初めてであり、明らかに何かがあります私はあなたが提供できるどんな助けに対しても前もってそれほどthxを得ていません。
InterfaceBuilderから派生したカスタムUIViewがあります。サイズを200wx200hに設定し、backgroundColorを緑に設定したいと思います。私が作成したとき、私は次のことをしました:
- [ファイル]->[新規]->[Objective-C]を介してTviewと呼ばれる新しいカスタムUIViewを作成しました
- [ファイル]->[新規]->[ユーザーインターフェイス]->[ビュー]を使用して新しいビューを作成し、tnibと呼びました。
- キャンバスで、ビューを削除し、オブジェクトインスペクターから新しいビューを追加して、クラス名をTviewに設定しました。また、属性インスペクターで、サイズをフリーフォームに設定し、背景色を緑に設定しました。サイズインスペクターで、幅を200に、高さを200に設定しました。
私のTview.mでは、次のように設定しました(他のSOの質問に基づいていくつかの更新を行いましたが、それらがまだ最新であるか正確であるかは不明です)。
@implementation Tview
-(id) initWithCoder:(NSCoder *)aDecoder
{
NSLog(@"in initWithCoder");
if((self = [super initWithCoder:aDecoder])) {
[self setUpView];
}
return self;
}
-(void)awakeFromNib
{
NSLog(@"in awakeFromNib");
[self setUpView];
}
-(void)setUpView
{
NSLog(@"I am in setUpView");
NSArray *subviewArray=[[NSBundle mainBundle] loadNibNamed:@"tnib" owner:self options:nil];
UIView *mainView = [subviewArray objectAtIndex:0];
[self addSubview:mainView];
}
@end
ViewController.xibで、UIViewをドラッグして、カスタムクラス名をTviewに設定します。Tview.hファイルを#importし、ViewController.xibからTview.hにドラッグして、次のプロパティを作成します。
@property (strong, nonatomic) IBOutlet Tview *myTview;
私はビルドして実行し、次の無限ループを取得します。
2013-03-04 06:49:05.452 Nibtest2[44524:11303] in initWithCoder
2013-03-04 06:49:05.455 Nibtest2[44524:11303] I am in setUpView
2013-03-04 06:49:05.456 Nibtest2[44524:11303] in initWithCoder
2013-03-04 06:49:05.458 Nibtest2[44524:11303] I am in setUpView
2013-03-04 06:49:05.459 Nibtest2[44524:11303] in initWithCoder
2013-03-04 06:49:05.460 Nibtest2[44524:11303] I am in setUpView
最終的にクラッシュするまで。
私はここで何が間違っているのですか?
事前にthx