Изменить размер UITableViewCell textLabel

У меня есть UITableViewCell, который я хотел бы добавить вправо (в дополнение к аксессуару). Я попытался установить размер textLabel на несколько пикселей более узким, но просто изменил его размер.

Есть ли способ изменить размер textLabel?

Ответ 1

Объект, на который ссылается свойство textLabel по умолчанию, в экземплярах UITableViewCell типа UITableViewCellStyleDefault, не может быть изменен, по крайней мере, не в моем опыте. Лучшая идея в этих случаях - создать свой собственный подкласс UITableViewCell, в коде или даже с помощью Interface Builder, если вы хотите, и дать ему макет, который вы хотите.

Ответ 2

На самом деле он может быть изменен, если вы создадите подкласс UITableViewCell и переопределите метод layoutSubviews:

- (void)layoutSubviews {
[super layoutSubviews];  //The default implementation of the layoutSubviews

CGRect textLabelFrame = self.textLabel.frame;
textLabelFrame.size.width = _textLabelMaxWidth;
self.textLabel.frame = textLabelFrame;
}

Надеюсь, что это поможет.

Ответ 3

Я заметил, что textLabel изменяет размеры, чтобы разместить аксессуар. Поэтому, если вы хотите, чтобы метка использовала всю ячейку, вы можете установить аксессуар в nil (я думаю, что это поведение по умолчанию в любом случае). Или, например, если вы хотите, чтобы метка занимала только левую половину ячейки, сделайте accessView пустой UIView, который охватывает правую половину ячейки. (Не нужно быть пустым, вы можете поместить туда вещи... я хочу сказать, что он сократит текстLabel.)

Ответ 4

Вы можете изменить размер ячейки UITableView Cell самым простым способом. Во-первых, взгляните на мой образец проекта.

ResizableUIView

Он покажет вам, как вы можете изменить размер ячейки ячейки uitableview на ее внутреннем компоненте простейшим способом, создав ограничения.

    tblTest.estimatedRowHeight = 100 // This is where you can set your estimated row height
    tblTest.rowHeight = UITableViewAutomaticDimension

Другим важным фактом являются ваши метки: введите описание изображения здесь

он должен быть 0

Чтобы вы поняли, я установил UILabel внутри UIView, посмотрим, как я создал ограничения на его родительский UIView.

Если вам все равно нужна помощь, просто спросите.

Удача