0

私は電卓を作成していますが、ラベルの数字は常に切り捨てられるため、ユーザーは完全な表示を見ることができません。

この問題を解決するには、ユーザーが完全な回答と数字を確認できるように、ラベル内のテキストを画面の左右に移動できるボタンを作成する必要があると言われました。

どうすればこれを行うことができますか?

4

1 に答える 1

0

textAlignmentiOS6 では、 の配置プロパティを使用できますUILabelUIButtonプロパティを介してのラベルにアクセスします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 に答える