本文介绍了基于自定义"XiB"的UI控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试实现自定义视图(等效于C#Custom UserControl)
I am trying to implement a custom view ( C# Custom UserControl equivalent )
用例:
- 我已经实现了基于UIView的自定义控件
- 该控件与专门的XiB文件( XIB文件A )相关联
- XiB的文件所有者"是专门的类,其中定义了IBOutlets
- 此控件由另一个XiB文件( XiB文件B )引用
- I have implemented a custom UIView based control
- The Control is associated with a specialized XiB file ( Xib file A )
- The 'File's Owner' of the XiB is a specialized class where IBOutlets are defined
- This control is referred to by a different XiB file ( XiB file B )
我希望在 XIB文件B 中呈现 XIB文件A 元素,但是,尽管所有IBOutlet都已正确关联,但未显示UI,并且'awakeFromNib ".
I was expecting Xib file A elements to be rendered within Xib file B, however, The UI wasn't presented although all IBOutlets were properly associated, and 'awakeFromNib' was called.
我在这里做什么错了?
以下是基于基于XiB的〜control〜的代码(由另一个XiB的另一个控件/视图引用)
The following is the code for the cusom XiB based ~control~ ( which is referred to by another control/view of a different 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
推荐答案
每:
唯一缺少的部分是
Per: UIView and initWithFrame and a NIB file. How can i get the NIB file loaded?
The only part missing was
- 在我的自定义视图中添加视图出口
- 将视图与相应的根视图@ XiB关联
- 通过awakeFromNib调用"[self addSubview:self.view]"
这篇关于基于自定义"XiB"的UI控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!