Подтвердить что ты не робот

Цвет фона UITableView не изменяется

В модели UIViewController у меня есть следующая реализация loadView (все создается программно):

- (void)loadView {

    // Add Basic View
    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 540, 620)];
    myView.backgroundColor = [UIColor clearColor];
    self.view = myView;
    [myView release];

    // Add NavigationBar

    // Add a BG image

    // Add Table
    UITableView *tbView = [[UITableView alloc] initWithFrame:CGRectMake(30, 80, 480, 250) style:UITableViewStyleGrouped];
    tbView.dataSource = self;
    tbView.delegate = self;
    tbView.scrollEnabled = NO;
    tbView.backgroundColor = [UIColor clearColor];
    [tbView reloadData];

    [self.view addSubview:tbView];
    [tbView release];

    // some more code
}

Как вы видите, я устанавливаю backgroundColor на clearColor, но когда я компилирую и запускаю код, я всегда вижу серый стол за столом: enter image description here

Я не понимаю, что я делаю неправильно (звучит глупо, я знаю), у меня был тот же самый код, и он работал отлично. Я компилирую с iOS SDK 4.2.1

4b9b3361

Ответ 1

Вам также необходимо установить свойство backgroundView UITableView на ноль в последних версиях iOS (начиная с версии 3.2).

Таким образом, добавление...

tbView.backgroundView = nil;

... должен сортировать ваши проблемы.

Тем не менее, если вы хотите поддерживать совместимость с устройствами до 3.2, вы должны проверить существование этого с помощью метода instancesRespondToSelector перед его вызовом.

Ответ 2

Убедитесь, что у вас установлены следующие 3 варианта:

tbView.opaque = NO;
tbView.backgroundColor = [UIColor clearColor];
tbView.backgroundView  = nil;

Ответ 3

попробовать

tbView.backgroundView = nil;