我有一个似乎没有明显解决方案的问题。我已经四处寻找,并且我已经找到了我能找到的所有常见答案。
我启动时,我的自定义xib视图不会显示在应用程序上。背景很清晰,这个xib有5个图像视图,如下所示,未设置为隐藏。
该类有大约5个代表,我在初始化代理时从调用者设置。 initWithDelegates:
的调用者是显示此xib的父UIViewController。
CustomView.h
@interface CustomView : UIView<SomeProtocol>
// UI Items - THESE AREN'T SHOWING UP
@property (strong, nonatomic) IBOutlet UIImageView *image1;
@property (strong, nonatomic) IBOutlet UIImageView *image2;
@property (strong, nonatomic) IBOutlet UIImageView *image3;
@property (strong, nonatomic) IBOutlet UIImageView *image4;
@property (strong, nonatomic) IBOutlet UILabel *label;
@property (strong, nonatomic) IBOutlet UIStackView *centerStackView;
- (id)initWithDelegates:(UIViewController*)delegate1 withDelegate2:(NSObject<Delegate2>*)delegate2 withDelegate3:(NSObject<Delegate3>*)delegate3 withDelegate4:(UIViewController<Delegate4>*)delegate4
withDelegate5:(NSObject<Delegate5>*)delegate5;
@end
CustomView.m
@implementation CustomView
- (void)awakeFromNib {
[super awakeFromNib];
}
- (id)initWithDelegates:(UIViewController*)delegate1 withDelegate2:(NSObject<Delegate2>*)delegate2 withDelegate3:(NSObject<Delegate3>*)delegate3 withDelegate4:(UIViewController<Delegate4>*)delegate4
withDelegate5:(NSObject<Delegate5>*)delegate5
{
NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil];
self = [arr firstObject];
self.delegate1 = delegate1;
self.delegate2 = delegate2;
self.delegate3 = delegate3;
self.delegate4 = delegate4;
self.delegate5 = delegate5;
[self setLoopImage];
[self layoutIfNeeded];
return self;
}
@end
我还验证了什么?
任何帮助表示赞赏!
更新:
我相信这与将nib放在嵌套的UIView中有关。在界面构建器中,顺序是UIViewController - > UIView - > nibs
似乎没有一种从父UIViewController注册nib的方法,就像UITableView这样的类。
我也尝试过:
(id)initWithDelegates
方法不初始化或注册nib以防复制对象。我这样做是通过删除1)return self
,2)注册nib的行,以及3)使方法原型返回void - I.E. (void)initWithDelegates
- 这也不起作用。[self addSubview: self.image1];
[self bringSubviewToFront: self.image1];
[self.menuImage setHidden:image1];
- 没有运气。检查自定义XIB中的Autolayout。包含的东西因为它而没有显示。例如:仅垂直居中并水平居中。尝试在自定义类的视图中执行不同的自动布局约束。
我认为在ParentView中布局您的CustomView有问题。能否请您: