Цвет фона UIView не устанавливается, пока устройство не вращается - PullRequest
0 голосов
/ 09 сентября 2010

Я работаю с простым приложением для iPad, и у меня есть простая проблема. Я настраиваю пользовательский UIView; вот мой initWithFrame:

- (id)initWithFrame:(CGRect)frame 
{
    if ((self = [super initWithFrame:frame])) 
    {
        self.backgroundColor = [UIColor colorWithWhite:.4 alpha:1.0];
        ....
    }

    return self;
}

Проблема в том, что при запуске приложения в этом представлении цвет фона не применяется, даже если запущена остальная часть init (добавлены элементы управления и т. Д.). Когда я поворачиваю устройство, цвет фона применяется и останется примененным в течение всего срока службы приложения. Я думаю, что где-то отсутствует команда компоновки, но я не уверен, где. Есть идеи?

РЕДАКТИРОВАТЬ 2

Вот вызов, чтобы начать просмотр. Эти методы есть в моем ViewController.

-(id)initWithFrame:(CGRect)_rect 
{
    rect = _rect;
    if(self = [super init]) 
    {
        ......
    }
    return self;
}

- (void)loadView 
{
    [super loadView];

    myView = [[MyView alloc] 
                     initWithFrame:rect];

    self.view = myView;
}

Ответы [ 3 ]

3 голосов
/ 10 сентября 2010

-initWithFrame: вызывается Интерфейсным Разработчиком, но не экземпляром NSCoder, который разархивирует ваше представление из файла пера во время выполнения.Вместо этого механизм разархивирования вызывает -initWithCoder:, поэтому вашему подклассу представления нужно будет сделать что-то вроде этого:

- (id)initWithCoder:(NSCoder *)decoder
{
    if ((self = [super initWithCoder:decoder]))
    {
        self.backgroundColor = [UIColor purpleColor];

        // Do other initialization here...
    }

    return self;
}
0 голосов
/ 10 сентября 2010

Мммм

Если у вас нет метода вызова (который выделяет ваш UIView), мы не сможем вам помочь.

Это может быть потому, что ваш кадр uiview не 'настроен правильно.Или потому, что вы не вызываете initWithFrame после alloc, но вызываете функцию init.

Так что дайте нам больше информации, если хотите, чтобы вам помогли: -)

Удачи!

0 голосов
/ 10 сентября 2010

Попробуйте изменить фон в методе viewDidLoad?

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