У меня есть пользовательский класс, унаследованный от UIView
@interface StatusBarView : UIView
@property (weak, nonatomic) id <ActivationStatusDelegate> delegate;
//MARK: init
- (id) initWithCustom: (struct WidgetCustom *) widget;
- (id) initWithStatus:(ActivationBtnStatus) activeStatus;
//MARK: Function
- (void) setStatus: (ActivationBtnStatus) status;
@end
, и это является частью реализации
@interface StatusBarView ()
@property (strong, nonatomic) IBOutlet UIButton *button1;
@property (strong, nonatomic) IBOutlet UIButton *button2;
- (void) createDefaultWidget;
@end
@implementation StatusBarView
ActivationBtnStatus status = noStatus;
struct WidgetCustom widget;
bool isWidgetSet = false;
- (void)awakeFromNib {
[super awakeFromNib];
if (!isWidgetSet) {
[self createDefaultWidget];
}
[self createButton];
}
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
[self createDefaultWidget];
[self createButton];
}
return self;
}
- (void)layoutSubviews {
CAShapeLayer * maskLayer1 = [CAShapeLayer layer];
maskLayer1.path = [UIBezierPath bezierPathWithRoundedRect: self.bounds byRoundingCorners: UIRectCornerBottomRight | UIRectCornerTopRight cornerRadii: (CGSize){10.0, 10.}].CGPath;
CAShapeLayer * maskLayer2 = [CAShapeLayer layer];
maskLayer2.path = [UIBezierPath bezierPathWithRoundedRect: self.bounds byRoundingCorners: UIRectCornerBottomLeft | UIRectCornerTopLeft cornerRadii: (CGSize){10.0, 10.}].CGPath;
_button1.layer.mask = maskLayer1;
_button2.layer.mask = maskLayer2;
}
- (id)initWithCustom:(struct WidgetCustom *) widget {
self = [[[NSBundle mainBundle] loadNibNamed:@"ActivationStatus" owner:nil options:nil] lastObject];
if (self) {
isWidgetSet = true;
widget = widget;
}
return self;
}
- (id)initWithStatus:(ActivationBtnStatus)activeStatus {
self = [[[NSBundle mainBundle] loadNibNamed:@"ActivationStatus" owner:nil options:nil] lastObject];
if (self) {
status = activeStatus;
}
return self;
}
}
, и именно так я управлял файлом .xib Владельца файлакласс пустой и для этого нет розетки
![enter image description here](https://i.stack.imgur.com/vJt7G.png)
![enter image description here](https://i.stack.imgur.com/4EWSu.png)
Розетки подключенывместо этого, и я установил StatusBarView
класс для представления файла .xib, как показано ниже
![enter image description here](https://i.stack.imgur.com/uQxIh.png)
![enter image description here](https://i.stack.imgur.com/fB5KG.png)
Теперь В другом ViewController я хочу использовать этот класс в качестве IBOutlet, подобного этому, без дополнительной инициализации: ![enter image description here](https://i.stack.imgur.com/UK4cg.png)
, но результат - просто серый вид. Возможно ли такое делать такие вещи? если да, пожалуйста, скажите мне, где я иду не так?