Iphone 以nib作为子视图的自定义视图不';我好像没在装货
我创建了一个自定义视图,从nib加载其内容,如下所示:Iphone 以nib作为子视图的自定义视图不';我好像没在装货,iphone,objective-c,interface-builder,views,nib,Iphone,Objective C,Interface Builder,Views,Nib,我创建了一个自定义视图,从nib加载其内容,如下所示: /* PricingDataView.h */ #import <UIKit/UIKIt.h> @interface PricingDataView : UIView { UIView *contentView; } @property (nonatomic, retain) IBOutlet UIView *contentView; @end /* PricingDataView.m */ #import "Pri
/* PricingDataView.h */
#import <UIKit/UIKIt.h>
@interface PricingDataView : UIView {
UIView *contentView;
}
@property (nonatomic, retain) IBOutlet UIView *contentView;
@end
/* PricingDataView.m */
#import "PricingDataView.h"
@implementation PricingDataView
@synthesize contentView;
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
[[NSBundle mainBundle] loadNibNamed:@"PricingDataView" owner:self options:nil];
[contentView setFrame:frame];
[self addSubview:contentView];
}
return self;
}
/* ... */
/*PricingDataView.h*/
#进口
@接口PricingDataView:UIView{
UIView*contentView;
}
@属性(非原子,保留)IBUIView*contentView;
@结束
/*PricingDataView.m*/
#导入“PricingDataView.h”
@实现PricingDataView
@综合内容视图;
-(id)initWithFrame:(CGRect)帧{
if((self=[super initWithFrame:frame])){
[[NSBundle mainBundle]loadNibNamed:@“PricingDataView”所有者:自选项:nil];
[contentView setFrame:frame];
[自添加子视图:contentView];
}
回归自我;
}
/* ... */
在nib文件中,我将PricingDataView
设置为文件所有者的类型,并连接IB中的contentView
插座。我将一个常规的UIView
从接口库放置到显示给用户的全尺寸视图上,然后将其类名更改为PricingDataView
。所有这些都会生成,但在运行时,不会在自定义视图所在的位置渲染任何内容
我在
PricingDataView.initWithFrame
中放置了断点,但它们没有命中,因此我知道缺少了一些会导致视图初始化的内容。我想知道的是,在从nibs加载其他视图的过程中,所有的初始化都是为我进行的,但这次不是。为什么? 您确定其他视图没有使用UIViewController
?以下是来自initWithFrame:
的UIView
的引用:
如果使用Interface Builder进行设计
在您的接口中,此方法不可用
在查看对象时调用
随后从nib文件加载。
nib文件中的对象是
重新组合,然后初始化
使用他们的initWithCoder:方法,
它修改了
查看以匹配存储在中的属性
nib文件。有关详细信息
关于如何从nib加载视图
文件,请参阅
在运行时在Interface Builder中添加文件时,它会调用
-(id)initWithCoder:(NSCoder*)aDecoder
而不是initWithFrame。只需撤消添加到UIView
的视图的类名(PricingDataView
)。在这种情况下,将调用initWithFrame
:方法
以前在循环中调用了awakeFromNib。由于您的customView
和您通过Nib
添加的视图
作为子视图
属于相同的类类型