UILabels
ああ、コンテナビューの中央(水平方向と垂直方向の両方)にを配置したいですか?
私は自分の答えを言い換えたので、将来の読者にとってより意味のあるものになるでしょう。
私のコードは、3つのIBOutletsが設定されていることを前提としています。
UIView *containerView; //Your nice view containing the two textfields.
UILabel *points; //The label containing the number.
UILabel *overall; //The textfield containing the text 'overall'.
テキストを割り当ててを呼び出した後、ラベルのフレームを設定するだけですsizeToFit
。
この最初の行はUILabel
ポイントを配置しますが、唯一の変更点は、y座標がcontainerView
それ自体の高さの半分を引いた半分であるということです。
points.frame = CGRectMake(points.frame.origin.x, (containerView.frame.size.height / 2) - (points.frame.size.height / 2), points.frame.size.width, points.frame.size.height);
それに応じて配置するoverall
には-番号と全体的なラベルの間にたとえば6の距離があると言います。
int space = 6;
overall.frame = CGRectMake(overall.frame.origin.x, points.frame.origin.y + points.frame.size.height + space, overall.frame.size.width, overall.frame.size.height);
あなたのコメントを読んだら、あなたはこの解決策を求めていると思います。UILabels
両方を中央に表示したい場合; そのような(overall.frame.size.height / 2) + (space / 2)
のy値から減算します(その下に番号2のコードがあります):points
int space = 6;
points.frame = CGRectMake(points.frame.origin.x, ((containerView.frame.size.height / 2) - (points.frame.size.height / 2)) - ((overall.frame.size.height / 2) + (space / 2)), points.frame.size.width, points.frame.size.height);
overall.frame = CGRectMake(overall.frame.origin.x, points.frame.origin.y + points.frame.size.height + space, overall.frame.size.width, overall.frame.size.height);
最後のポイントは、この画像のような出力を生成します。ご覧のとおり、青い線は画像全体の半分であり、中央の点で黒い長方形(2つのラベルの周りにぴったりと収まっています)と交差しています。これがあなたが求めていたものであることを願っています。