Текстовое поле UILabel [duplicate]

На этот вопрос уже есть ответ здесь:

Я ищу, чтобы установить левую вставку / поле UILabel и не может найти способ сделать это. У метки есть задний фон, поэтому просто смена источника не поможет. Было бы идеально вставить текст с помощью 10px или около того с левой стороны.

307
задан Bhavin Ramani 22 December 2016 в 01:54
поделиться

2 ответа

Если вы не хотите использовать дополнительное родительское представление для установки фона, вы можете создать подкласс UILabel и переопределить textRectForBounds: limitedToNumberOfLines: . Я бы добавил свойство textEdgeInsets или подобное, а затем сделал бы

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
{
  return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds,textEdgeInsets) limitedToNumberOfLines:numberOfLines];
}

Для надежности вы также можете вызвать [self setNeedsDisplay] в setTextEdgeInsets :, но я обычно не беспокоюсь.

10
ответ дан 23 November 2019 в 01:18
поделиться

Я думаю, что у класса UILabel нет метода для установки поля. Почему вы не устанавливаете положение метки в нужном месте?

См. Код ниже:

UILabel *label = [[UILabel alloc] init];
label.text = @"This is label";
label.frame = CGRectMake(0,0,100,100);

если из построителя интерфейса, просто разместите метку следующим образом:

yourLabel.frame = CGRectMake(0,0,100,100);
0
ответ дан 23 November 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: