0

我正在尝试实现自定义视图( C# Custom UserControl 等效)

用例:

  1. 我已经实现了一个基于 UIView 的自定义控件
  2. 控件与专门的 XiB 文件(Xib文件 A)相关联
  3. XiB 的“文件所有者”是一个专门的类,其中定义了 IBOutlets
  4. 此控件由不同的 XiB 文件(XiB 文件 B)引用

我期待Xib 文件 A元素在Xib 文件 B中呈现,但是,尽管所有 IBOutlets 都正确关联,但未显示 UI,并且调用了“awakeFromNib”。

我在这里做错了什么?

以下是基于自定义XiB的代码~control~(由不同XiB的另一个控件/视图引用)

@interface SeriesView ()
@property (strong, atomic, readonly) MediaViewer* mediaViewer;
- (void) OnInitialize;
- (void) awakeFromNib;
@end

@implementation SeriesView

@synthesize mediaViewer = _mediaViewer;
@synthesize image = _image;
@synthesize scroll = _scroll;

- (id)initWithFrame:(CGRect)frame
{
    if(nil == (self = [super initWithFrame:frame]))
        return nil;
    [[NSBundle mainBundle] loadNibNamed:@"SeriesView" owner:self options:nil];
    return self;
}

- (id)initWithCoder:(NSCoder*)aDecoder
{
    if(nil == (self = [super initWithCoder:aDecoder]))
        return nil;
    [[NSBundle mainBundle] loadNibNamed:@"SeriesView" owner:self options:nil];
    return self;
}

- (void) OnInitialize
{
    _mediaViewer = [[MediaViewer alloc] init];
    _image.hidden= NO;
}

- (void)awakeFromNib
{
    [super awakeFromNib];
    [self OnInitialize];    
}
@end
4

1 回答 1

2

Per:UIView 和 initWithFrame 以及一个 NIB 文件。我怎样才能加载NIB文件?

唯一缺少的部分是

  1. 向我的自定义视图添加视图出口
  2. 将视图与相应的根视图@ XiB 关联
  3. 通过 awakeFromNib 调用“[self addSubview:self.view]”
于 2013-01-04T08:31:16.473 回答