私は電卓を作成していますが、ラベルの数字は常に切り捨てられるため、ユーザーは完全な表示を見ることができません。
この問題を解決するには、ユーザーが完全な回答と数字を確認できるように、ラベル内のテキストを画面の左右に移動できるボタンを作成する必要があると言われました。
どうすればこれを行うことができますか?
私は電卓を作成していますが、ラベルの数字は常に切り捨てられるため、ユーザーは完全な表示を見ることができません。
この問題を解決するには、ユーザーが完全な回答と数字を確認できるように、ラベル内のテキストを画面の左右に移動できるボタンを作成する必要があると言われました。
どうすればこれを行うことができますか?
textAlignment
iOS6 では、 の配置プロパティを使用できます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;
}