Сгруппированный UITableView с пользовательскими UILabels в режиме редактирования - PullRequest
2 голосов
/ 24 мая 2011

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

Если я использую стандарт cell.textLabel, размер этикетки изменяется и остается в границах ячейки.Идеи о том, как сделать это с помощью пользовательского UILabels?

1 Ответ

1 голос
/ 24 мая 2011

Вам необходимо реализовать и использовать эти два метода UITableViewDelegate:

– tableView:willBeginEditingRowAtIndexPath:
– tableView:didEndEditingRowAtIndexPath:

В willBegin установите для рамки UILabel меньшую ширину и установите ширину в обычный размер при didEndEditing.* Например, если ваша UILabel отодвигается на 50 пикселей от границы, в ваших методах вы делаете:

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *thisCell = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath];

    CGRect newFrame = thisCell.someUILabel.frame;

    newFrame.size.width -= 50;

    thisCell.someUILabel.frame = newFrame;
}

- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *thisCell = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath];

    CGRect newFrame = thisCell.someUILabel.frame;

    newFrame.size.width += 50;

    thisCell.someUILabel.frame = newFrame;
}
...