我已經設置了一個筆尖文件,在一個較大的UIView元素中包含一些基本的UIView元素。兩個元素是UIImageView類的子類(用於向用戶顯示數據的度量單位)。無論如何,在我看來,我希望將這些儀表作爲自己的筆尖文件,因爲它們具有許多視覺元素,爲了理智,將儀表單獨放置在自己的筆尖文件中會很好。我還想爲儀表和其他基本元素在父級筆尖文件中設置一個控制器。我已經將父級筆尖中的子級別筆尖對象設置爲我的自定義類(如UIMeter)。我無法將子筆尖裝入父筆尖,當我重寫UIMeter的initWithCoder方法時,它會創建一個無限循環,因爲我試圖使用loadnibnamed進入子筆尖文件進行加載。我也嘗試從父控制器加載nib,但它從loadnibnamed加載子筆尖和筆尖。這可能會更有意義的代碼和圖像:在筆尖文件中加載一個筆尖文件
UIMeter代碼,並不真的確定,我甚至需要這個,因爲它會導致無限循環,但我希望視圖可以足夠聰明,以某種方式加載自己儘管在閱讀文檔時,在控制器中爲視圖執行此操作似乎更合適。
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self)
{
self = [[[NSBundle mainBundle] loadNibNamed:@"PowerMeterView" owner:self options:nil] firstObject];
}
return self;
}
在父控制器我撥打了像這樣的觀點:
-(void)loadView
{
if(![self isViewLoaded])
{
GameMenuView *menuView = [GameMenuView new];
menuView.userEnergy = [[[NSBundle mainBundle] loadNibNamed:@"PowerMeterView" owner:self options:nil] firstObject];
menuView.userReactor = [[[NSBundle mainBundle] loadNibNamed:@"PowerMeterView" owner:self options:nil] firstObject];
_gameMenuView = menuView;
//--This places the child nib from the file on the view but it is not replacing the UIMeter in the parent nib
[menuView.userEnergy setFrame:CGRectMake(0, 0, 20, 20)];
[menuView addSubview:menuView.userEnergy];
[self setView:menuView];
}
}