ОБНОВИТЬ:
Благодаря информации от "Evgeny S" я смог определить, что то, что закрывает кнопку удаления, является фоном ячейки. У меня была следующая функция, вызванная в начале инициализации ячейки:
- (void) setupGradientsWithHeight:(int) the_height
{
CAGradientLayer* gradient = [CAGradientLayer layer];
gradient.frame = CGRectMake(self.bounds.origin.x,
self.bounds.origin.y,
self.bounds.size.width,
the_height);
gradient.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithRed:218.0f/255.0f
green:218.0f/255.0f
blue:220.0f/255.0f
alpha:1.0].CGColor,
(id)[UIColor colorWithRed:180.0f/255.0f
green:180.0f/255.0f
blue:184.0f/255.0f
alpha:1.0].CGColor,nil];
UIView* bgview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
[bgview.layer addSublayer:gradient];
[self setBackgroundView:bgview];
}
Проблема решается НЕ добавлением backgroundview. Однако мне интересно, как это можно решить, сохраняя градиентный фон для каждой ячейки?
Может произойти одно из двух. Когда появляется кнопка удаления, вид фона либо смещается, а затем обратно, либо его размер уменьшается, а затем возвращается. Я попытался возиться с компонентом ширины «self.bounds.size.width» для рамки градиента, но я до сих пор не понимаю, как это может повлиять на вещи, потому что эта функция вызывается только один раз при инициализации ячейки.
ОРИГИНАЛЬНЫЙ ПОСТ:
Я создал приложение в Xcode4 под iOS6 SDK, но после загрузки в новую среду (Xcode5 и iOS7 SDK) столкнулся с проблемой. Обратите внимание, что я устранил все ошибки сборки и предупреждения, появившиеся при переходе.
У меня есть таблица с некоторыми ячейками. После входа в режим редактирования, если щелкнуть красную кнопку-переключатель, чтобы инициировать режим удаления для ячейки, начнется анимация и появится кнопка «Удалить», но ненадолго, а затем внезапно снова скрыта.
Еще одна странная вещь, которую я должен отметить, заключается в том, что даже когда кнопка удаления закрыта, вы все равно можете нажать там, где она должна быть, и удалить ячейку.
Я пытался удалить как можно больше своего «пользовательского кода», я удалил функции, которые я переопределил, и попытался вернуть все в исходное состояние, насколько это возможно, но безрезультатно.
В какой-то момент я увидел странное сообщение в выходном журнале: «попытка установить свайп для удаления ячейки, когда она у нас уже есть… это не очень хорошо». По какой-то причине сообщение появляется дольше, и я не могу вспомнить, что я делал в то время.
Любые мысли или рекомендации о том, что может быть причиной этого?