我已经设置了一个笔尖文件,在一个较大的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];
}
}