21

iOS7 で autolayout を使用していますが、次のような問題があります。

UILabel を UIView に配置し、ラベルの centerX = 親ビューの centerX になるように自動レイアウトの制約を調整しています。ラベルに幅の制約を与えていません。実行時にラベルのテキストを設定すると、ラベルはテキストが収まるのに十分な幅で描画され、左右にマージン/パディングはありません。私が欲しいのは、ラベルが始まるところからテキストが始まらないように、左右にパディングを入れることです。これを達成するためのハックは、テキストを @" text " として設定することですが、もちろんそれは方法ではありません:)

どうすれば私が望むものを達成できますか?

4

4 に答える 4

7

UILabel サブクラスを作成し、intrinsicContent をオーバーライドできます。

-(CGSize)intrinsicContentSize {
    CGSize s = [super intrinsicContentSize];
    s = CGSizeMake(s.width + 20, s.height);
    return s;
}

これにより、幅に 20 ポイントのパディングが追加されます。テキストを中央に配置する場合は、テキストの配置を中央に設定してください。

于 2014-01-02T01:39:33.130 に答える