Изменение расстояния между textLabel и detailTextLabel в UITableViewCell? - PullRequest
3 голосов
/ 18 января 2011

Есть ли способ изменить расстояние между textLabel и detailTextLabel в UITableViewCell? (без подкласса UITableViewCell)

Ответы [ 2 ]

8 голосов
/ 18 января 2011

Создайте пользовательский подкласс UITableViewCell и реализуйте метод -layoutSubviews, чтобы сделать это:

- (void) layoutSubviews {
  [super layoutSubviews];
  //my custom repositioning here
}

Если вы хотите это сделатьбез подклассов вы могли бы сделать это с помощью метода Swizzling, но в целом это плохая идея ™.

3 голосов
/ 11 декабря 2015

Это можно сделать без создания подклассов с помощью NSAttributedString и свойства attributetedText, например:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyReuseIdentifier"];

NSAttributedString *text = [[NSAttributedString alloc] initWithString:@"Some Text"];
cell.textLabel.attributedText = text;

NSMutableParagraphStyle *subtitleParagraphStyle = [NSMutableParagraphStyle new];
subtitleParagraphStyle.minimumLineHeight = 20;

NSMutableAttributedString *subText = [[[NSAttributedString alloc] initWithString:@"Some Subtitle Text"] mutableCopy];
[subText addAttribute:NSParagraphStyleAttributeName value:subtitleParagraphStyle range:NSMakeRange(0, subText.length)];

cell.detailTextLabel.attributedText = subText;

То, что вы делаете, заставляет высоту строки субтитров быть больше, чем обычно. Игра с высотой строки текста и подтекстом должна помочь вам достичь того, что вы хотите. Должен быть совместим с iOS 7+.

Несколько лет спустя, но, надеюсь, кто-нибудь найдет это полезным.

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