私は本当にこれに対する答えを探しましたが、確かなものは何も思いつかなかったので、ここに行きます。
ビューにUILabelを動的に追加しています。サイズは任意です。行の下に文字があるかどうかに関係なく、2番目に追加されたものを最後の約2ピクセル下に配置したいと思います。
フォントにサイズ変更された後、外観のないラベルフレームを取得するために、さまざまな方法を使用してみました。フレームは常に実際のテキストよりも垂直方向に大きく見えます。
何かアイデアはありますか?
まず、ラベルadjustsFontSizeToFitWidth
をNOに設定して、目標のように通常の比率を台無しにすることができるかどうかを確認します。
それが機能しない場合は、おそらく文字列をCALayerに描画する必要があります。CALayerを作成し、それをビューのルートレイヤーに追加します。
[yourView.layer addSublayer.yourNewLayerForString].
サブレイヤーのデリゲートを、描画を行うクラスに設定します。
[yourNewLayerForString setDelegate:self];
drawLayer
そして、そのクラス(デリゲートとして割り当てたクラス)に実装します。drawLayerコードはちょっと見苦しいかもしれませんが、レイヤーに文字列を描画する方法の例を見つけることができます。これは良さそうです:addTextToLayer。
次に、フォントと文字列のサイズを正確に制御し、目的に合わせてレイヤーフレームとビューフレームを調整できます。