[tableView setBackgroundColor:[UIColor clearColor]] не работает только на iPad с iOS8
Заявление:
[tableView setBackgroundColor:[UIColor clearColor]];
имеет no effect only on iPad especially with iOS8 with my existing App only
, Я просто создал тестовое приложение, чтобы точно определить проблему, но it works
, Я создал UIViewController
класс как это:
@implementation TestViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.view setBackgroundColor:[UIColor purpleColor]];
UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, 300, 300) style:UITableViewStylePlain];
[aTableView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:aTableView];
}
@end
и нажмите ist со следующим утверждением:
[self.navigationController pushViewController:[TestViewController new] animated:YES];
Выталкиваем из нового Test App результаты вот так (как я хочу):
но из моего существующего приложения (реального приложения, в котором я должен реализовать) результат выглядит так:
Очистка цвета фона отлично работает под iOS7 iPhone и iPad даже с iOS 8 iPhone. Я попытался найти реализацию прокси-сервера UIAppearance, которая может повлиять на внешний вид, но ее нет.
Я уже попробовал несколько SO предложений, включая setting the backgroundView to nil
а также they haven't helped
,
Почему он работает с новым тестовым приложением и почему он не работает с моим существующим приложением? Все, что связано с UINavigationController
?
NB: Пожалуйста, не отмечайте как дубликат, потому что здесь вопрос полностью или немного отличается от существующих.
2 ответа
Это цвет клетки. Таким образом, вы должны изменить цвет своей клетки. Для получения дополнительной информации см.
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor clearColor];
}
UIView *bgView = [[UIView alloc] initWithFrame:cell.frame];
bgView.backgroundColor = [UIColor clearColor];
cell.backgroundView = bgView;
Попробуйте приведенный выше код