UILabel: корректировка полей в соответствии с UITextView - PullRequest
2 голосов
/ 17 июня 2010

У меня есть UILabel, и если я настраиваю размер текста, я могу сделать его похожим на UITextView, однако левое поле будет другим, на UIlabel текст будет прямо напротив левой границы, где UITextView имеет небольшое поле , Как настроить UILabel таким образом, чтобы при расположении этих элементов управления друг над другом они выглядели согласованно?

1 Ответ

5 голосов
/ 24 июня 2010

Просто измените рамку метки:

CGRect frame = label.frame;
CGRect newFrame = CGRectMake(frame.origin.x + MARGIN, frame.origin.y, frame.size.width - MARGIN, frame.size.height);
label.frame = newFrame;

Конечно, замените MARGIN на то, что вы хотите, чтобы ваше поле было.

Или вы можете подкласс UILabel и переопределить textRectForBounds:limitedToNumberOfLines: какитак:

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
    CGRect newBounds = CGRectMake(bounds.origin.x + MARGIN, bounds.origin.y, bounds.size.width - MARGIN, bounds.size.height);
    return [super textRectForBounds:newBounds limitedToNumberOfLines:numberOfLines];
}

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

...