我真的花了很多时间来找到解决这个问题的方法。
我有;
CustomView.h ,从UIView
延伸,也是IB_DESIGNABLE
CustomView.m ,可使用覆盖方法init
,initWithCoder
和initWithFrame
来实施此视图
与所有属性绑定到CustomView类的 CustomView.xib
而且,我有:
- 从UITableViewCell扩展的CustomTableViewCell.h
- CustomTableViewCell.m实现此单元格
- CustomTableViewCell.xib绑定到具有所有属性和插座的CustomTableViewCell类。
CustomTableViewCell.xib包含CustomView ...
没有任何错误,但CustomView的区域仍为空白。
答案 0 :(得分:2)
对于视图,您需要做一些解决方法。
创建一个属性并将您的视图链接到XIB
;
@property (strong, nonatomic) IBOutlet UIView *xibView;
然后有这样的事情:
- (void)awakeFromNib{
[super awakeFromNib];
[self commonInit];
}
- (instancetype)init{
self = [super init];
if (self) {
[self commonInit];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}
- (void)commonInit{
//this will work if the view has the same name as the XIB
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
self.xibView.frame = self.bounds;
[self addSubview:self.xibView];
self.xibView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
基本上,您必须手动加载XIB
并将其添加到自定义视图中。