0

我正在制作一个计算器,标签中的数字总是会被截断,因此用户无法看到完整的显示。

为了解决这个问题,有人告诉我应该制作可以在屏幕上向左或向右移动标签中的文本的按钮,以便用户可以看到完整的答案和数字。

我该怎么做呢?

4

1 回答 1

0

在 iOS6 中,您可以textAlignmentUILabel. 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;
}
于 2013-05-25T18:28:51.490 回答