9

我正在调用sizeToFit其中UILabel包含右对齐文本的内容。它会缩小 的高度和宽度,UILabel并将文本放在 . 的左上角UILabel

现在......的位置UILabel不正确。如何使UILabel停留在其原始位置(右对齐)或移动它以使其出现在其原始位置?

再一次 - 问题是该sizeToFit方法正在从UILabel. 它将UILabel文本视为左对齐。但我的文字是右对齐的。所以,右边的边框UILabel是我的文本开始的地方。

4

2 回答 2

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
于 2013-05-21T10:53:13.007 回答
3

您检查前后的宽度,然后将视图的中心向右移动差异 / 2。

顺便说一句,我认为“盒子”(框架)在两个方向上都缩小了,保持中心完好无损。

于 2011-04-05T09:01:22.053 回答