iOS увеличивает отступ в режиме редактирования для пользовательского UITableViewCell - PullRequest
0 голосов
/ 04 сентября 2011

У меня есть UITableView с возможностью удалять строки в режиме редактирования и т. Д. Как правило, когда вы нажимаете кнопку «Редактировать», вы переходите в режим редактирования, и содержимое ячеек перемещается в право. Если вы выполните «удаление пальцем», содержимое ячейки останется на месте.

Что я хочу сделать, так это увеличить отступ при входе в режим редактирования. Я пробовал UITableView метод делегата indentationLevelForRowAtIndexPath, но, похоже, он не работает, когда я использую UITableViewCell подкласс.

В конце я использовал метод layoutSubviews в своем подклассе UITableViewCell. Ниже мой код:

- (void)layoutSubviews
{
    [super layoutSubviews];

    CGRect b = [self bounds];

    if(self.editing && !self.showingDeleteConfirmation){
        b.origin.x = 42;
    }

    [self.contentView setFrame:b];
}

Это отступает для содержимого ячейки далее, когда вы входите в режим редактирования, и благодаря «!self.showingDeleteConfirmation», когда вы делаете «пролистывание для удаления», оно не отступает.

Однако, когда вы нажимаете кнопку «Редактировать», затем нажимаете одну из кнопок удаления круга, содержимое ячейки перемещается обратно в исходное положение оси 0 x. Это потому, что для showingDeleteConfirmation теперь установлено значение true.

Я пытался это исправить, проверяя текущее значение origin.x, но каждый раз, когда я проверяю, оно устанавливается на 0.

Есть ли способ, которым я могу достичь того, чего хочу?

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