UILabel を 1 つだけ含む UIView があります。この UILabel は、長さが異なる情報を表示するために使用されます。メソッドを使用して UILabel の高さを計算し[label.text sizeWithFont:label.font constrainedToSize:label.bounds.size lineBreakMode:label.lineBreakMode]
ます。しかし、UILabel の高さに基づいて UIView の高さを変更する方法は?
1 に答える
2
[label.superview setFrame:label.frame];
原則としてそうすべきです。もう少しロジックを追加して、いくつかのマージン/パディングを組み込む必要がある場合があります。つまり、self.frame を座標に分割し、いくつかのオフセットを追加し、CGFrameMake を使用してそこから新しいフレームを作成し、それをスーパービュー フレームに割り当てる必要があります。
[label.superview setFrame: CGFrameMake(0, 0, label.frame.size.width + 2*label.frame.origin.x, label.frame.size.height + 2*label.frame.origin.y)];
2 番目は、推測としてのみ使用してください。ラベルのフレームが 0 ではない可能性があるため、原点を 0 に設定します。次に、左マージンと右マージンが同じであり、上マージンと下マージンも同じであると仮定して、ラベルの周りにマージンの余地を追加します。 .
于 2013-04-29T07:29:42.037 に答える