Подкласс UIView не загружается при инициализации в главном представлении - PullRequest
0 голосов
/ 22 марта 2012

Я пытаюсь создать небольшой индикатор внутри UIButton.Я поместил пользовательский вид и изменил пользовательский класс в Интерфейсном конструкторе, чтобы он стал моим классом.Затем я создал IBOutlet того же типа и соединил их в конструкторе интерфейсов.

Мой подкласс затем выглядит так:

- (UIView *)initWithNumber:(NSInteger *)number
{
    self = [super initWithFrame:CGRectMake(0, 0, 34, 17)];
    if (self) {
        [self setBackgroundColor:[UIColor blueColor]];

    }
    return self;
}

, затем в главном представлении я делаю:

self.indicatorControl = [indicatorControl alloc] initWithNumber:(NSNumber *)32];

Но это не инициализация представления и изменение цвета фона при загрузке представления?Почему этого не происходит?Если я помещаю вызов метода setBackgroundColor в awakeFromNib, он работает, но я хочу, чтобы он инициализировал и возвращал мое представление при вызове моей инициализации.Похоже, это должно работать.

1 Ответ

1 голос
/ 22 марта 2012

Если вы оставите IBOutlet там, то построитель интерфейса будет повторно инициализировать вашу кнопку, перезаписывая создание кнопки в коде.Вы хотите инициализировать кнопку в коде или построителе интерфейса?

Я бы предложил:

Код: отсоединить кнопку от построителя интерфейса и поместить код в viewDidLoad родительского контроллера представления Построитель интерфейса: установите синий фон в конструкторе интерфейса или выполните инициализацию в awakeFromNib

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...