Как сделать отступ для пользовательского uilabel в UITableViewCell при редактировании - PullRequest
1 голос
/ 18 августа 2011

У меня есть пользовательский uitableviewcell, который я хотел бы сделать отступ, когда я включаю это:

[self.boatsDisplay setEditing:YES animated:YES];

Может ли кто-нибудь дать мне подсказку или руководство?

Спасибо

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

Вам нужно будет создать подкласс UITableViewCell и переопределить -layoutSubviews.Когда бит редактирования ячейки установлен в YES, -layoutSubviews будет автоматически вызываться.Любые изменения, сделанные в -layoutSubviews, автоматически анимируются.

Рассмотрим этот пример

- (void)layoutSubviews
{
    [super layoutSubviews];
    CGFloat xPosition = 20.0f; // Default text position

    if (self.editing)
        xPosition = 40.0f;

    CGRect textLabelFrame = self.textLabel.frame;
    textLabelFrame.origin.x = xPosition;
    self.textLabel.frame = textLabelFrame;
}
2 голосов
/ 18 августа 2011

В вашем UITableViewDelegate вы можете использовать метод tableView:indentationLevelForRowAtIndexPath::

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
  if(tableView.editing == YES){
    return 1; // or higher integer
  } else {
    return 0;
  }
}

Если вы хотите проверить только свою пользовательскую ячейку, вы можете добавить &&[[tableView cellForRowAtIndexPath:indexPath] isKindOfClass:yourTableViewCell] в условии if.

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