UITableView отрицательная верхняя вставка содержимого вызывает сбой при переупорядочении строк - PullRequest
5 голосов
/ 31 марта 2012

У меня есть UITableView с отрицательной верхней вставкой содержимого (-20).Я использую отрицательную вставку для эффекта тени: заголовок таблицы представляет собой теневой градиент.Отрицательная вставка приводит к тому, что тень появляется только тогда, когда пользователь перетаскивает таблицу (аналогично таблице аварийных сигналов в приложении «Часы»).

Это прекрасно работает.Пока я не начну переупорядочивать строки (с помощью стандартного механизма переупорядочения UITableView).

В тот момент, когда я беру первую строку, вся таблица спрыгивает вниз, так что нижний край последней строки выравнивается по нижней частиэкран.Это действительно странный глюк.Когда я освобождаю строку (в той же или другой позиции), таблица остается в этом странном смещенном состоянии.Когда я выполняю прокрутку, таблица возвращается в исходное положение.

Это также происходит с другими строками, если я перетаскиваю их в верхнюю строку.Переупорядочение ниже верхнего ряда работает нормально.Когда я меняю вставку содержимого на ноль (или положительное число), сбой не возникает.

Это действительно похоже на ошибку в iOS (5.0) - разве я что-то упустил?Есть идеи как обойти это?

1 Ответ

2 голосов
/ 02 августа 2013

Я также столкнулся с этой проблемой в iOS 6.

Я не смог найти исправление, но есть обходной путь, который может сработать, если ваша таблица имеет только один раздел.По сути, вместо установки отрицательного значения для вставки содержимого можно установить отрицательную высоту заголовка раздела.Похоже, это имеет тот же эффект, что и отрицательная вставка - подталкивание всего содержимого области прокрутки вверх - без сбоев во время переупорядочения.

Поэтому вместо:

[tableView setContentInset:UIEdgeInsetsMake(-16, 0, 0, 0)];

Попробуйте:

[tableView setSectionHeaderHeight:-16.0];

Это, конечно, не будет хорошо работать, если у вас есть содержимое в заголовках разделов (или в нескольких разделах таблицы), но для таблиц с одним разделом это кажется приемлемым решением.


Одно быстрое обновление, так как у меня пока недостаточно комментариев, чтобы комментировать: Первоначальная ошибка, которую пытается обойти, кажется, исправлена ​​в iOS 7. Я закончил, оборачивая свое исправление вусловие проверки версии для устройств iOS <7. </em>

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