在iOS中 - 如何在不改变其位置的情况下将UILabel放入其文本中?

时间:2011-04-05 08:32:57

标签: ios uilabel right-align sizetofit

我正在sizeToFit上调用UILabel,其中包含正确对齐的文字。它会缩小UILabel的高度和宽度,并使文本适合UILabel的左上角。

现在...... UILabel的位置不正确。如何让UILabel保持原始位置(右对齐)或移动它以使其显示在原始位置?

再一次 - 问题是sizeToFit方法正在缩小UILabel右侧的宽度。它将UILabel文本视为左对齐。但我的文字是正确对齐的。因此,UILabel的右侧边框是我的文字开始的地方。

2 个答案:

答案 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)

你检查之前和之前的宽度之后,然后将差异的中心向右移动。

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