UIlabelをUIViewクラスに追加しようとしています。 次の形式にする必要があります-15 - ラベル(最大幅まで伸ばします)-15。AwakeFromNib自動レイアウトUIlabelを両側の間隔にプログラムで伸ばします
トップ間隔= 15、次のコードで30
2つの問題に固定され、高さ: - 1)ラベルは、最大幅 2にストレッチしない)テキスト場合は右側の間隔は、表示されません。それは長すぎる。
-(void)awakeFromNib{
[super awakeFromNib];
view1 =[[UILabel alloc] init];
view1.translatesAutoresizingMaskIntoConstraints=NO;
[self addSubview:view1];
view1.text= @"Hello";
NSDictionary *constraintViews=
@{@"view1":view1};
NSDictionary *[email protected]{@"spacing":@(15)};
NSArray *hConstraints=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-spacing-[view1]-spacing-|" options:NSLayoutFormatAlignAllCenterX metrics:metrics views:allViews];
NSArray *vConstraints=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-spacing-[view1(30)]" options:0 metrics:metrics views:constraintViews];
[self addConstraints:hConstraints];
[self addConstraints:vConstraints];
}
水平方向の拘束はまだ機能しません。リーディング側で15の間隔を示しますが、トレーリング側では15の間隔を示します。 – andyPaul
その制約の優先度を1000(必須)に増やしてみてください。 [NSLayoutConstraint constraintsWithVisualFormat:@ "H:| - 散布 - [view1] - 散布@ 751- |"オプション:NSLayoutFormatAlignAllCenterXメトリック:メトリックビュー:constraintViews]; – user4955208
それでも動作しませんでした。私はなぜ左側に正しい間隔が表示されていないのですか、右側にはスペースがありません – andyPaul