【问题标题】:In iOS - How do I fit a UILabel to its text, without changing its position?在 iOS 中 - 如何在不改变其位置的情况下将 UILabel 适合其文本?
【发布时间】:2011-07-29 18:49:29
【问题描述】:
我在 UILabel 上调用 sizeToFit,其中包含右对齐文本。它会缩小UILabel 的高度和宽度,并将文本放在UILabel 的左上角。
现在...UILabel 的位置不正确。如何使UILabel 保持在其原始位置(右对齐)或移动它以使其显示在其原始位置?
再一次 - 问题是sizeToFit 方法正在缩小UILabel 右侧的宽度。它将UILabel 文本视为左对齐。但我的文字是右对齐的。所以,UILabel 的右侧边框是我的文本开始的地方。
【问题讨论】:
标签:
ios
uilabel
right-align
sizetofit
【解决方案1】:
@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
【解决方案2】:
您检查前后的宽度,然后将视图的中心向右移动差异 / 2。
顺便说一句,我认为“盒子”(框架)在两个方向上都缩小了,保持中心不变。