Изменить рамку метки в ячейке табличного представления - PullRequest
0 голосов
/ 10 мая 2011

Вчера я спросил, как изменить положение метки в ячейке табличного представления, но я до сих пор не понимаю. На самом деле, у меня есть ярлык в правом углу ячейки. Когда я переключаюсь в ландшафтный режим, он перемещается в центр, но я хочу, чтобы он был в правом углу. Пожалуйста, кто-нибудь, помогите мне.

Ответы [ 5 ]

0 голосов
/ 04 сентября 2013

Если я хочу, чтобы мой textLabel имел отступ 16, то в cellForRowAtIndexPath: я бы набрал:

cell.indentationWidth = 8.0;
cell.indentationLevel = 1;

Свойство ячейки indentationLevel (CGFloat) определяет количество кратных ширины indentationWidth (NSInteger) для отступа textLabel.

Значение по умолчанию indentationWidth равно 10,0, а значение по умолчанию indentationLevel равно 0.

0 голосов
/ 11 мая 2011

спасибо всем, что сделано.Я просто установил рамку для правильного положения и добавил к contentView tableviewcell.

lideCell1.sliderValueForSecond.frame=CGRectMake(25, 8, 400,23);
                slideCell1.tickLbl.frame=CGRectMake(430, -3, 27,40);
                slideCell1.tickLbl.text=@"+";
                slideCell1.tickLbl.font = [UIFont boldSystemFontOfSize:36.0];
                [slideCell1.contentView addSubview:slideCell1.sliderValueForSecond];
                [slideCell1.contentView addSubview:slideCell1.tickLbl];

Здесь slideCell1 является объектом tableviewcell.

0 голосов
/ 10 мая 2011

Прежде всего вам нужно настроить экземпляр UITableViewCell, либо программным путем добавив к нему объект UILabel, либо создав его с помощью Interface Builder.

Как только вы разместите метку, чтобы изменить ее положение, вы должны рассмотреть возможность редактирования ее свойства кадра. E.g.:

UILabel *label = cell.label; // You should change this code to properly read the label
CGRect frame = label.frame;
frame.position.x = new_x_position;
frame.position.y = new_y_position;
label.frame = frame;

Таким образом, вы можете обновить положение этикетки в соответствии с вашими потребностями.

Если проблема, с которой вы сталкиваетесь, заключается в правильном расположении этикетки при изменении ориентации интерфейса, вам следует правильно установить маску автоматического изменения размера для этого компонента. Чтобы выровнять его по правому краю:

label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;

Чтобы выровнять его по левому краю:

label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

Кроме того, вы можете выбрать автоматическую адаптацию ширины этикетки:

label.autoresizingMask = UIViewAutoresizingFlexibleWidth;

Или вы можете выбрать комбинацию из предыдущих:

label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin |
                         UIViewAutoresizingFlexibleRightMargin |
                         UIViewAutoresizingFlexibleWidth;

Дайте мне знать, если это поможет.

0 голосов
/ 10 мая 2011

Что вы хотите сделать, это создать подкласс UITableViewCell и переопределить методы layoutSubviews. Он вызывается при изменении размера ячейки, например, при изменении ориентации интерфейса.

В этом методе вы сначала вызываете супер реализацию, чтобы правильно обновить макет для представлений контента, аксессуаров, фонов и т. Д. А затем обновите пользовательский контент.

Все ваше пользовательское содержимое должно быть добавлено подпредставлениями contentView подпредставления ячейки табличного представления, а не прямыми подпредставлениями к ячейке табличного представления. Это важно, иначе выделение и выделение облажаются.

Вы также можете создать подкласс UIView напрямую и использовать в качестве подпредставления, полностью охватывающего contentView, и выполнить там переопределение layoutSubviews, не вызывая супер реализацию.

0 голосов
/ 10 мая 2011

Вот статья. В статье я описываю, как создать пользовательский tableViewCell, может быть, это поможет Пример пользовательского tableViewCell с изображениями и метками Проверьте это.

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