При создании подкласса UIToolBar в приложении для iPad, чтобы сделать его прозрачным, он становится черным - PullRequest
1 голос
/ 01 марта 2011

Я пытаюсь создать прозрачный UIToolBar в приложении для iPad, создав его подклассы.Я видел / читал несколько примеров того, как это сделать, и мой код выглядит правильно, но когда я запускаю свое приложение, фон становится черным, а не прозрачным.

Вот мой файл TransparentToolBar.h:

#import <UIKit/UIKit.h>


@interface TransparentToolBar : UIToolbar {

}


@end

А теперь мой файл .m:

#import "TransparentToolBar.h"


@implementation TransparentToolBar

// Override draw rect to avoid
// background coloring
- (void)drawRect:(CGRect)rect {
    // do nothing in here

}

// Set properties to make background
// translucent.
- (void) applyTranslucentBackground
{
self.backgroundColor = [UIColor clearColor];
self.opaque = NO;
self.translucent = YES;
}

// Override init.
- (id) init
{
self = [super init];
[self applyTranslucentBackground];
return self;
}

- (id)initWithFrame:(CGRect)aRect {
    if ((self = [super initWithFrame:aRect])) {
        [self applyTranslucentBackground];    
    }
    return self;
}


@end

Похоже, что функции инициализации не вызывают, но функция drawRect потому, что она удаляет фон, который был установлен в IB.

1 Ответ

2 голосов
/ 01 марта 2011

Когда представление разархивировано из XIB, инициализатор вызывается -initWithCoder:

- (id)initWithCoder:(NSCoder *)coder
{
    if (self = [super initWithCoder:coder])
    {
        [self applyTransluscentBackground];
    }

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