Подвиды не отображаются в классе UIView - PullRequest
0 голосов
/ 16 апреля 2009

Я пытаюсь выложить некоторые изображения в коде, используя addSubview, и они не отображаются.

Я создал класс (myUIView), который подклассов UIView, а затем изменил класс файла пера в IB на myUIView.

Затем я вставил следующий код, но все еще получаю пустой серый экран.

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
        [self setupSubviews];
    }
    return self;
}

- (void)setupSubviews
{
    self.backgroundColor = [UIColor blackColor];

    UIImageView *black = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"black.png"]];
    black.center = self.center;
    black.opaque = YES;

    [self addSubview:black];

    [black release];
}

Ответы [ 2 ]

2 голосов
/ 13 ноября 2012

да, просто внедрите initWithCoder.

initWithFrame вызывается при динамическом создании UIView из кода. представление, которое загружается из файла .nib, всегда создается с помощью initWithCoder, кодер заботится о чтении настроек из файла .nib

Я взял привычку выполнять инициализацию в отдельном методе, реализуя оба initWithCode и initWithFrame (и мои собственные методы инициализации, когда это необходимо)

0 голосов
/ 16 апреля 2009

попробуйте реализовать initWithCoder: иногда у меня были проблемы с IB и initWithFrame:

или, по крайней мере, добавьте вызов регистрации, чтобы увидеть, выполняется ли ваш метод init

...