我正在sizeToFit
上调用UILabel
,其中包含正确对齐的文字。它会缩小UILabel
的高度和宽度,并使文本适合UILabel
的左上角。
现在...... UILabel
的位置不正确。如何让UILabel
保持原始位置(右对齐)或移动它以使其显示在原始位置?
再一次 - 问题是sizeToFit
方法正在缩小UILabel
右侧的宽度。它将UILabel
文本视为左对齐。但我的文字是正确对齐的。因此,UILabel
的右侧边框是我的文字开始的地方。
答案 0 :(得分:16)
@implementation UILabel (Additions)
- (void)sizeToFitWithAlignmentRight {
CGRect beforeFrame = self.frame;
[self sizeToFit];
CGRect afterFrame = self.frame;
self.frame = CGRectMake(beforeFrame.origin.x + beforeFrame.size.width - afterFrame.size.width, self.frame.origin.y, self.frame.size.width, self.frame.size.height);
}
@end
答案 1 :(得分:3)
你检查之前和之前的宽度之后,然后将差异的中心向右移动。
顺便说一句,我认为“盒子”(框架)在两个方向都缩小了,保持了中心的完整。