Это может быть очень плохой вопрос, поэтому я заранее извиняюсь. Не стесняйтесь сказать мне, есть ли лучший способ приблизиться к этому.«Кастинг» UIView, определенный в раскадровке, в подкласс
Я использую раскадровки для компоновки первоначального расположения объектов. Скажем, что я поставил UIView
на раскадровку, и я связываю этот вид с объектом в моем ViewController.m
файле storyboardView
. Во время выполнения может произойти много с этим UIView
, и после шаблона MVC мне бы хотелось, чтобы код, который управляет этим поведением, существует в отдельном подклассе. Как я могу «бросить» это UIView
, чтобы он теперь отвечал на подкласс, а не на ViewController?
Я думаю о чем-то подобном, но это не работает. Он не бросает какие-либо ошибки, но цвет фона не краснея, так что я знаю, что я неудачно:
#import "ViewController.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UIView *storyboardView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.storyboardView = [[MyView alloc] initWithFrame:self.storyboardView.frame];
}
@end
Подкласс Заголовок:
#import <UIKit/UIKit.h>
@interface MyView : UIView
@end
Подкласс Реализация:
import "MyView.h"
@implementation MyView
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor redColor];
}
return self;
}
@end
Так просто. Благодаря! – Alex