Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

29.09.2014, 19:53. Просмотров 565. Ответов 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 и iOS8 (Программирование iOS):

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

удаления без сдвига - C#
Как сделать так что бы при удаление строки остальные которые находятся ниже не сдвигались, а то было по началу так Excel.Range rg =...

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

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

Запрет удаления символов в Edit - C++ Builder
Добрый вечер, каким образом можно обеспечить запрет удаления символов в Edit? Enable = false; не предлагать, пожалуйста:-| ...

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

6
noname_club
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
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
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
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 - запрет удаления файлов - Assembler
Здравствуйте. Необходимо написать резидент, запрещающий удаление файлов определённого расширения. Программа должна быть написана под DOS...

Запрет/контроль удаления каталогов - Windows Server
Всем привет! Может кто встречал решение такой задачи? Бывает ситуация, когда был(и) удален(ы) каталог(и), а если это важнейшая база...

Dgv запрет удаления строк - C#
И снова я со своей таблицей... Проблема вот в чем, имеется таблица dgv, редактирование таблицы запрещено (по типу ReadOnly = true, только...

Запрет удаления последней записи в dbgrideh - C++ Builder БД
Здравствуйте. Как запретить удаление последней записи в dbgrideh. Спасибо.


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

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

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