2017-05-27 15 views
0

私はUIStackView内の要素を中心から等しく配置しようとしています。Swift UIStackView:プログラムで中心から要素を配置します。

これは望ましい効果である私が希望:

enter image description here

あなたが見ることができるように、私は2つのテキストフィールドがスタックビュー内で互いに揃え中心から等間隔になりたいです。

このスタックビューには、必要なテキストフィールドが1〜7つあります。ここで

は、現在何が出ているされています

//Stack View 
let stackView = UIStackView() 
stackView.axis = UILayoutConstraintAxis.horizontal 
stackView.distribution = UIStackViewDistribution.equalCentering 
stackView.alignment = UIStackViewAlignment.fill 
stackView.spacing = 16.0 

stackView.addArrangedSubview(textLabel) 
stackView.addArrangedSubview(textLabel1) 
stackView.translatesAutoresizingMaskIntoConstraints = false; 

self.view.addSubview(stackView) 

//Constraints 

stackView.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 50).isActive = true 
stackView.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: -50).isActive = true 
stackView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 100).isActive = true 

enter image description here

これは私がテキストフィールド

let textLabel = UILabel() 
textLabel.backgroundColor = UIColor.red 
textLabel.widthAnchor.constraint(equalToConstant: 40.0).isActive = true 
textLabel.heightAnchor.constraint(equalToConstant: 20.0).isActive = true 
textLabel.text = "Hi" 
textLabel.textAlignment = .center 

let textLabel1 = UILabel() 
textLabel1.backgroundColor = UIColor.red 
textLabel1.widthAnchor.constraint(equalToConstant: 40.0).isActive = true 
textLabel1.heightAnchor.constraint(equalToConstant: 20.0).isActive = true 
textLabel1.text = "Hi" 
textLabel1.textAlignment = .center 

私はそうのようなスタックビューを生成していますを設定しています方法です

内側の要素を中央に配置するにはどうすればよいですか?

私はそれはしかし、そのdidntのは多くを行う

をUIStackViewDistribution.equalCentering

だと思いました。奇数ザッツ

あなたの時間を感謝:)

答えて

2

enter image description here

enter image description here

enter image description here

しかし、多分私はあなたが修正し、あなたが実際に何かをしたい理解していないよ:通常、中心合わせと同等のセンタリング分布を持つ水平UIStackViewは、まさにそれを行う必要がありますこれは:

enter image description here

配布方法として同様に記入選び、ラベル自体が彼らのテキストを中央揃えにする必要がありの場合:

enter image description here

+0

私は、スタックのアラインメントおよびディストリビューションのための古い値を表示するためにInterface Builderを発見した、あなたは試してみてくださいXcodeを再起動し、レンダリングが異なるかどうかを確認してください。 – Norman

+0

私はあなたが何を意味するかわからないし、私はIBのstackviewsに問題があったことはありません。 :/ – xxtesaxx

+0

これは単なるスタックビューモードのビジュアルデモです。 – xxtesaxx

関連する問題