0

その上にある別のサブビューの幅と高さに応じて、サブビューのフレームのx値とy値を設定する方法はありますか?言い換えると、例として、UIViewにUILabelとUIImageの2つのサブビューがあるとすると、ラベルのコンテンツは将来変更され、より多くのスペース(1つではなく2つまたは3つの「行」)を占める可能性があります。そのラベルで使用されている文字数に応じて、その画像が少し低く表示されるようにする必要がありますか?UIWebViewを単に使用するための代替手段はありますか?

提案を事前に感謝します。

4

2 に答える 2

0

UITextView を使用して UIImage にラベルを付けることができます。デリゲート メソッドがあります - (void)textViewDidChange:(UITextView *)textView UITextView デリゲート (UITextViewDelegate)。これは、テキスト ビューが変更されたときに発生するため、テキスト ビューでコンテンツのサイズを確認し、必要に応じて画像を移動できます。

これを実装して、textview.contentSize.height + y 座標が UIImage の y 座標より大きいかどうかを確認し、大きい場合は UIImage を y 座標の新しいオフセットに移動します。textview.contentSize.width + X 座標と UIIMage の x 座標でも同じです。

于 2012-06-03T11:33:07.650 に答える
0

あなたが説明したように、適切な値は個々のビューが知らないコンテキストに依存するため、ビューは実際には独自のフレーム x と y を設定するべきではありません。

layoutSubviewsラベル ビューとイメージ ビューを適切にサイズ設定して配置するために、それを含むビューに実装する必要があります。次に、ラベルのサイズが変更されたことを検出すると、それsetNeedsLayoutを含むビューを呼び出します。これにより、含まれているビューのサブビューのサイズを変更して再度配置する必要があることが UIKit に通知さlayoutSubviewsれ、適切なタイミングで実装が呼び出されます。

于 2012-06-23T11:30:16.907 に答える