Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
#1

Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 - Программирование iOS/iPhone

29.09.2014, 19:53. Просмотров 524. Ответов 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.

Буду рад советам и комментариям!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2014, 19:53     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8
Посмотрите здесь:

Принцип удаления в UITabBarController and UINavigationController Objective-C
Не отображается копка меню в SplitViewController в портретном режиме
UILabel в модальном режиме
TableView - изменение анимации удаления ячеек
Не обновляются TableViewCells после удаления данных и reloadData
Если компилированное приложение для iOS7 запустить под iOS6 Objective-C
Objective-C Кастомная таблица не отображает ячейки, пока я не буду ее прокручивать
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 582
30.09.2014, 08:54     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 #2
чтобы красная круглая кнопка удаления просто накладывалась сверху на ячейку
откажись от стандартной системы редактирования и использую свою Custom ячейку.
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
30.09.2014, 11:27  [ТС]     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 #3
Я как раз кастомную ячейку и использую.
А что вы имеете в виду - "отказаться от стандартной системы редактирования"? В смысле - кнопку красненькую руками рисовать, обрабатывать нажатия на нее и т.д.?
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 582
30.09.2014, 12:55     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 #4
В смысле - кнопку красненькую руками рисовать, обрабатывать нажатия на нее и т.д.?
чтобы красная круглая кнопка удаления просто накладывалась сверху на ячейку, а она сама оставалась на месте и не сдвигалась в сторону, как в обычном режиме.
ну вам же нужно "просто", следовательно стандартный режим редактирования можно не использовать.
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
30.09.2014, 14:16  [ТС]     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 #5
В принципе, может и в самом деле так и сделать, если не получится.. Единственное, что смущает - что в iOS7 же все получилось, видимо я лишь какой-то момент упустил при работе конкретно с iOS8.
Как-то жаль бросать, думаю, есть какой-то "платформозависимый" нюанс, который решит проблему
DreadIsBlack
0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 5
30.09.2014, 23:27     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 #6
Ну что у тебя получилось?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2014, 11:20     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8
Еще ссылки по теме:

Автоматический запрет нажатия определенного символа
Неизвестный объект занимает всю область ячейки UITableViewCell Objective-C
Динамическая высота ячейки
Создание ячейки при клике Swift
Как задать минимальную высоту ячейки в table view? Swift

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

Или воспользуйтесь поиском по форуму:
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
02.10.2014, 11:20  [ТС]     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8 #7
Да я временно отложил этот вопрос..
Пока сделаю основную часть проекта, а потом уже вернусь к этому. Как написал noname_club, всегда можно сделать в лоб - руками отрисовать эту кнопку, так что запасной вариант есть))
Yandex
Объявления
02.10.2014, 11:20     Запрет сдвига ячейки в режиме удаления в iOS7 и iOS8
Ответ Создать тему
Опции темы

Текущее время: 02:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru