1

Label1 (2 行、切り捨て) と Label2 (1 行、切り捨て) のように、ビュー内で 2 つの UILabel (動的な高さ) を垂直方向に中央揃えにする方法:

+------------------------------------------+
|                                          |
|                                          |
|Label1 Label1 Label1 Label1 Label1 Label1 |
|Label1 Label1 Label1 Label1 Label1 ...    |
|Label2 Label2 Label2 Label2 Label2 ...    |
|                                          |
|                                          |
+------------------------------------------|

これは、単一の UILabel と NSAttributedString では不可能だと思います (1 つの部分を 2 行で切り捨て、別の部分を 1 行で切り捨てるため)。

4

2 に答える 2

1

自動レイアウトを使用している場合は、2 つのラベルを親 UIView に埋め込み、制約を使用して親 UIView をそのスーパービューで垂直方向に中央揃えにすることができます。

于 2013-10-01T22:24:49.267 に答える
0

ビュー内のラベル フレームが表示され、画面上でそれらを再度置き換えることができます。以前に試してみましたが、うまくいきました。setNeedsDisplay を呼び出す必要があるかもしれません。

- (void)viewDidAppear:(BOOL)animated {

   float heights = lbl1.frame.size.height + lbl2.frame.size.height;
   lbl1.frame = CGRectMake( lbl1.frame.origin.x, screenheight/2 - heights/2, lbl1.frame.size.width, lbl1.frame.size.height );
   lbl2.frame = CGRectMake( lbl2.frame.origin.x, screenheight/2 - heights/2 + lbl1.frame.size.height, lbl2.frame.size.width, lbl2.frame.size.height );
  [lbl1 setNeedsDisplay];
  [lbl2 setNeedsDisplay];
}
于 2013-10-01T22:21:08.063 に答える