Я пытаюсь сделать отступ для текста в UILabel, чтобы оставить поле вокруг текста, показывающее цвет фона. Следуя предложению здесь, я переопределил textRectForBounds:limitedToNumberOfLines:
следующим образом:
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
{
CGRect intermediate = CGRectMake(bounds.origin.x+MARGIN,bounds.origin.y+MARGIN,bounds.size.width-2*MARGIN,bounds.size.height-2*MARGIN);
return [super textRectForBounds:intermediate limitedToNumberOfLines:numberOfLines];
}
Но что бы я ни делал, текст оказывается плотно прижатым к левой границе прямоугольника. Кажется, что рисунок игнорирует исходную часть возвращаемого CGRect (хотя, похоже, он учитывает часть ширины, как если бы я уменьшал ширину промежуточного значения, например, до bounds.size.width-200
, прямоугольник, который возвращает textRectForBounds, достаточно узок, и текст рисуется в длинной тощей колонке).
Итак: что еще мне нужно сделать с UILabel
, чтобы рисунок учитывал origin.x и origin.y textForRectBounds
-returned-rect? Я бы предпочел не переопределять UILabel
drawTextInRect
, если я могу помочь.
Обновление: это было давно, и я не могу точно вспомнить, почему другой вопрос не сработал для меня. Я полагаю, это потому, что я пытался создать UILabel
с несколькими строками, а решение здесь не помогло. не работает в этом случае.
intermediate
напрямую? - person Jeff Kelley   schedule 05.02.2011