На этот вопрос уже есть ответ здесь:
Я ищу, чтобы установить левую вставку / поле UILabel
и не может найти способ сделать это. У метки есть задний фон, поэтому просто смена источника не поможет. Было бы идеально вставить текст с помощью 10px
или около того с левой стороны.
Если вы не хотите использовать дополнительное родительское представление для установки фона, вы можете создать подкласс UILabel и переопределить textRectForBounds: limitedToNumberOfLines:
. Я бы добавил свойство textEdgeInsets или подобное, а затем сделал бы
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
{
return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds,textEdgeInsets) limitedToNumberOfLines:numberOfLines];
}
Для надежности вы также можете вызвать [self setNeedsDisplay] в setTextEdgeInsets :, но я обычно не беспокоюсь.
Я думаю, что у класса 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);