У меня есть настроенный UITableviewCell
. Внутри есть ярлык с надписью и ярлык.Подгонянные UITableViewCell Update Подсмотры
Теперь я хочу настроить атрибуты ярлыков деталей в соответствии с содержанием. Если размер строки больше, чем кадр, то установите количество линии 2.
Я попытался поместить код в cellForRowAtIndexPath
или layoutSubViews
в классе клеток.
Кусок кода, как
TransportationViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
UIFont* font = cell.detailLabel.font;
NSDictionary* attribute = @{NSFontAttributeName:font};
const CGSize textSize = [cell.detailLabel.text sizeWithAttributes: attribute];
if (textSize.width > cell.detailTextLabel.frame.size.width && cell.detailLabel.numberOfLines == 1) {
NSLog(@"%lf, %lf, %lu", cell.detailLabel.frame.size.width, textSize.width, (long)cell.detailLabel.numberOfLines);
cell.detailTextLabel.font = [UIFont systemFontOfSize:8];
cell.detailTextLabel.numberOfLines = 2;
[cell setNeedsLayout];
}
Это на самом деле прошло, если условие, но установка метки не работает.
Возможно, вы вводите в заблуждение между detailLabel и detailTextLabel? Второе, что вам не нужно вызывать здесь «[cell setNeedsLayout]», он должен работать без этого. – Nikita