UITableView Проблемы с перерисовкой - PullRequest
0 голосов
/ 17 июля 2011

У меня есть UITableView, который показывает очень странное поведение при перезагрузке.По какой-то причине некоторые границы табличного представления просто пропадают (хотя я никогда не изменял их), но показанные метки ячеек верны.

Если я просто перезагрузлю одну строку, эта строка теряет свои границы.Если я перезагружу всю таблицу, вся таблица теряет свои границы.

Я использую белый фон, и ячейки также имеют белый фон, в то время как UITableView использует стиль группы.

Я не видел такого поведения раньше - это ошибка?

Вот как я настраиваю таблицу:

settingsController.view.backgroundColor = [UIColor whiteColor];

_settingsTable = [[UITableView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.frame style:UITableViewStyleGrouped];
_settingsTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_settingsTable.delegate = self;
_settingsTable.dataSource = self;
_settingsTable.backgroundView = nil;

[settingsController.view addSubview:_settingsTable];

и ячейки становятся белыми с помощью этого простого кода:

cell.backgroundView = nil;
cell.backgroundColor = [UIColor whiteColor];

enter image description here

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

Редактировать: Вот как я решил это:

Кажется, есть ошибка в UITableView.Как вы, возможно, знаете, UITableView не заботится о свойстве backgroundColor, поскольку его фон загружается в отдельном представлении, которое по умолчанию является текстурированным изображением.При установке значения null в табличном представлении отображались ошибки отображения.

Я исправил это, просто создав отдельный белый вид - теперь он работает нормально.

UIView*whiteBg = [[UIView alloc] initWithFrame:_settingsTable.frame];
whiteBg.backgroundColor = [UIColor whiteColor];

_settingsTable.backgroundView = whiteBg;

[whiteBg release];

1 Ответ

0 голосов
/ 17 июля 2011

Не устанавливайте фоновый вид вашей таблицы на ноль.Аналогичного эффекта можно добиться, установив backgroundColor на [UIColor clearColor]

То же самое относится к UITableViewCell.

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