我有两种语言的应用程序(英语和德语),应用程序包含带背景的标签。在英语中,一切都还可以,但是在德语中,UIL用于缩短,文本中的文本缩短为3个点。喜欢:
我可以添加一些自动调整大小的属性,将标签大小调整为正确的大小吗?最后一件事是我有很多标签只有界面。我想节省一些时间并在界面中弄明白。是否可以或唯一的方法是将sizeToFit
设置为标签?谢谢你的建议。
答案 0 :(得分:2)
所以你想要做的是,在界面中设置sizeToFit。
这很容易。
在“属性”检查器中设置AutoShrink属性,它将等于适合的大小。
此外,您甚至可以指定最小字体大小和字体比例。
答案 1 :(得分:1)
Kakshil的答案适用于您不想调整标签大小以实际适合所包含文本的情况。它将减少文本的磅值以尝试适合可用空间。对于真正动态的文本,这可能是最好的选择。
另一方面,如果您想要实际调整标签大小以适合文本,则可以在更改标签文本后调用[label sizeToFit]。或者,您可以使用sizeThatFits:来使用修改后的边界,您不希望标签过大或过小。
答案 2 :(得分:1)
我自定义了我的标签,添加了本地化并设置了嵌入框架。怎么样简单但一个缺点是我必须将tag
设置为关键。我的解决方案是:
- (void)layoutSubviews {
NSString *key = [NSString stringWithFormat:@"%d", self.tag];
self.text = NSLocalizedString(key, nil);
CGSize textSize = [self.text sizeWithAttributes:@{NSFontAttributeName:self.font}];
CGFloat strikeWidth = textSize.width;
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, strikeWidth + 20, self.frame.size.height)];
[super layoutSubviews];
}
- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 5};
[super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}