배경색을 나타내는 텍스트 주위에 여백을 남기려면 UILabel에서 텍스트를 들여 쓰려고합니다. 제안 here 다음 나는과 같이 textRectForBounds:limitedToNumberOfLines:
를 오버라이드 (override) 한 :UILabel textRectForBounds는 여백을 만들 때 아무 효과가 없습니다.
- (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의 원점 부분을 무시하는 것처럼 보입니다 (비록 width 부분을 존중하는 것처럼 보이지만, 예를 들어 bounds.size.width-200
의 중간 너비로 축소하는 것처럼 textRectForBounds가 반환하는 rect는 적당히 좁고 텍스트는 그려집니다. 긴 마른 칼럼에).
그렇다면 UILabel
으로해야 할 일이 textForRectBounds
- 돌아가는 rect의 origin.x와 origin.y를 존중하도록하려면 어떻게해야합니까? 차라리 도움이된다면 UILabel
의 drawTextInRect
을 덮어 쓰지 않을 것입니다.
업데이트 : 이것은 오래전 일이었습니다. 다른 질문이 저에게 효과적이지 않은 이유를 정확히 기억하지 못합니다. 여러 줄의 UILabel
을 가지고 있기 때문에 그랬다고 믿습니다. 그럴 경우 here 솔루션이 작동하지 않습니다.
직접 '중간'을 반환 해 보셨습니까? –
예.하지만 차이는 없습니다. – damian