Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
1

Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8

29.09.2014, 19:53. Просмотров 614. Ответов 6
Метки нет (Все метки)

Всем привет!

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

Переопределил layoutSubviews в классе моей ячейки таким образом:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- (void)layoutSubviews
{
    [super layoutSubviews];
    
    self.contentView.frame = CGRectMake(0, self.contentView.frame.origin.y, self.contentView.frame.size.width, self.contentView.frame.size.height);
    
    if ((self.editing && ( (_state & UITableViewCellStateShowingEditControlMask) && !(_state & UITableViewCellStateShowingDeleteConfirmationMask) ))
        || ((_state & UITableViewCellStateShowingEditControlMask) && (_state & UITableViewCellStateShowingDeleteConfirmationMask)))
    {
        float indentPoints = self.indentationLevel * self.indentationWidth;
        
            self.contentView.frame = CGRectMake(indentPoints,
                                                self.contentView.frame.origin.y,
                                                self.contentView.frame.size.width - indentPoints,
                                                self.contentView.frame.size.height);
    }
}
 
- (void)willTransitionToState:(UITableViewCellStateMask)aState
{
    [super willTransitionToState:aState];
    self.state = aState;
}
В iOS7 все отрабатывает четко, как мне и надо.
А в iOS8 только "наполовину", а именно:

1) Вошли в режим редактирования - все ОК, контент ячейки остался на месте, красная кнопка выросла поверх нее.
2) Вышли из режима редактирования - ячейка дернулась вправо, сдвинувшись на свой стандартный indentationLevel и сразу потом поехала обратно. Т.е. как бы все равно срабатывает анимация выхода из режима редактирования.

Возможно я не понимаю "жизненный цикл" входа/выхода из режима редактирования.. Но не могу пока понять, почему не работает полноценно мой код именно в iOS8.

Буду рад советам и комментариям!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2014, 19:53
Ответы с готовыми решениями:

Если компилированное приложение для iOS7 запустить под iOS6
добрый вечер. столкнулся с глобальной для себя проблемой. пишу в xcode 5,...

удаления без сдвига
Как сделать так что бы при удаление строки остальные которые находятся ниже не...

Триггер на запрет удаления
Люди, помогите написать триггер на mysql который при удалении записи из таблицы...

Запрет удаления листа
Как сделать чтобы нельзя было удалять листы через (ПКМ по названию > Удалить)

Запрет удаления по условию
Подскажите пожалуйста, как в табличной форме запретить удалять записи при...

6
noname_club
106 / 97 / 12
Регистрация: 01.05.2013
Сообщений: 603
30.09.2014, 08:54 2
чтобы красная круглая кнопка удаления просто накладывалась сверху на ячейку
откажись от стандартной системы редактирования и использую свою Custom ячейку.
0
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
30.09.2014, 11:27  [ТС] 3
Я как раз кастомную ячейку и использую.
А что вы имеете в виду - "отказаться от стандартной системы редактирования"? В смысле - кнопку красненькую руками рисовать, обрабатывать нажатия на нее и т.д.?
0
noname_club
106 / 97 / 12
Регистрация: 01.05.2013
Сообщений: 603
30.09.2014, 12:55 4
В смысле - кнопку красненькую руками рисовать, обрабатывать нажатия на нее и т.д.?
чтобы красная круглая кнопка удаления просто накладывалась сверху на ячейку, а она сама оставалась на месте и не сдвигалась в сторону, как в обычном режиме.
ну вам же нужно "просто", следовательно стандартный режим редактирования можно не использовать.
0
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
30.09.2014, 14:16  [ТС] 5
В принципе, может и в самом деле так и сделать, если не получится.. Единственное, что смущает - что в iOS7 же все получилось, видимо я лишь какой-то момент упустил при работе конкретно с iOS8.
Как-то жаль бросать, думаю, есть какой-то "платформозависимый" нюанс, который решит проблему
0
DreadIsBlack
0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 5
30.09.2014, 23:27 6
Ну что у тебя получилось?
0
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
02.10.2014, 11:20  [ТС] 7
Да я временно отложил этот вопрос..
Пока сделаю основную часть проекта, а потом уже вернусь к этому. Как написал noname_club, всегда можно сделать в лоб - руками отрисовать эту кнопку, так что запасной вариант есть))
0
02.10.2014, 11:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2014, 11:20

TSR - запрет удаления файлов
Здравствуйте. Необходимо написать резидент, запрещающий удаление файлов...

Триггер на запрет удаления сборников
Доброго времени суток. Есть триггер, который должен запрещать удаление...

Запрет удаления документов из View
Подскажите, пожалуйста, как можно запретить пользователям удалять док-ты из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru