我正在制作一个计算器,标签中的数字总是会被截断,因此用户无法看到完整的显示。
为了解决这个问题,我被告知我应该制作可以在屏幕左侧或右侧移动标签中的文字的按钮,以便用户可以看到完整的答案和数字。
我该怎么做呢?
答案 0 :(得分:0)
在iOS6中,您可以使用textAlignment
上的UILabel
对齐属性。您可以通过媒体资源UIButton
访问titleLabel
的标签。对于iOS5及更早版本,您无法轻松使用属性字符串,因此您可以更轻松地自行计算。
这基本上涉及查看您放置文本的视图的边界,并确定文本将占用多少空间。 iOS具有计算给定字体的文本大小的方法。
下面的代码是一个示例,它为parent
视图添加标签,并在父视图中右对齐UILabel
。
UILabel * addLabelRightAligned(UIView *parent, NSString *text, UIFont *font)
{
CGRect frame = {0, 0, 0, 20};
float padding = 15; // give some margins to the text
CGRect parentBounds = parent.bounds;
// Figure out how much space the text will consume given a specific font
CGSize textSize = [text sizeWithFont:font];
// This is what you are interested in. How we right align the text
frame.origin.x = parentBounds.size.width - textSize.width - padding;
frame.origin.y = parentBounds.size.height / 2.0 - textSize.height / 2.0;
frame.size.width = textSize.width;
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = text;
label.font = font;
label.backgroundColor = [UIColor clearColor];
[parent addSubview:label];
return label;
}