Любой хороший способ поместить значок UITableViewCellEditingStyleDelete в сгруппированном табличном представлении? - PullRequest
1 голос
/ 17 июня 2009

в качестве заголовка, могу ли я расположить кнопку / значок UITableViewCellEditingStyleDelete в ячейке табличного представления сгруппированного табличного представления, а не за ее пределами?

1 Ответ

2 голосов
/ 17 июня 2009

Отрывок из Мэтта Галлахера в блоге раскрывает метод

Это оригинальный код, имитирующий поведение, которое вам НЕ нужно:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [self setNeedsLayout];
}

- (void)layoutSubviews
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationBeginsFromCurrentState:YES];

    [super layoutSubviews];

    if (((UITableView *)self.superview).isEditing)
    {

        CGRect contentFrame = self.contentView.frame;
        contentFrame.origin.x = EDITING_HORIZONTAL_OFFSET;
        self.contentView.frame = contentFrame;
    }
    else
    {
        CGRect contentFrame = self.contentView.frame;
        contentFrame.origin.x = 0;
        self.contentView.frame = contentFrame;
    }

    [UIView commitAnimations];
}

Итак, если мы внесли изменение, мы можем заставить его делать то, что вы хотите:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [self setNeedsLayout];
}

- (void)layoutSubviews
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationBeginsFromCurrentState:YES];

    [super layoutSubviews];

    if (((UITableView *)self.superview).isEditing)
    {
        //don't resize and and move your frame here

        CGRect contentFrame = self.contentView.frame;
        contentFrame.origin.x = 0;
        self.contentView.frame = contentFrame;
    }
    else
    {
        CGRect contentFrame = self.contentView.frame;
        contentFrame.origin.x = 0;
        self.contentView.frame = contentFrame;
    }

    [UIView commitAnimations];
}

Вероятно, вам придется настроить это, но это хорошее начало.

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