Обновление для iOS 8: Приведенный ниже код больше не работает по какой-то причине
Альтернативное предложение для iOS 8:
Рассмотрите возможность созданияОграничение AutoLayout для представления отступа левого поля
Во время выполнения измените это ограничение, чтобы изменить уровень отступа
Если у вас есть пользовательский подкласс UITableViewCell, этот подкласс может иметь IBOutlet, сопоставленный с ограничением.(К сожалению, Apple не предоставила функцию findConstraintByTag / Id)
Свойство «константа» NSLayoutConstraint с иронией может быть изменено для изменения уровня отступа.
Для iOS 7:это работает (но больше не рекомендуется)
Основываясь на предложении Водханга, я реализовал следующее решение в своем подклассе UITableViewCell.Не уверен, что это лучшее решение, но оно работает нормально.
- (void)layoutSubviews
{
[super layoutSubviews];
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);
}