IB는이 문제를 매우 능숙하게 처리하지 못합니다. kludgy 솔루션은 "spacer"뷰를 추가하는 것입니다 (자동 레이아웃에서 간격을두기 위해 추가 할 뷰이지만 보이지는 않을 것입니다). 그냥 스페이서보기는 동일한 너비하고 다음 중 하나를 스택보기에서이 다섯 개 가지 견해를 떨어 뜨리거나 서로 맞 닿아 오 뷰 그래서 그냥 수평 제약 조건을 설정 :

그런 다음, 바로 스페이서 전망을 배경으로 설정 투명 색상, 그래서 우리는 그들을 볼 수 없습니다, 당신은 당신이 원하는 간격해야합니다 :

(나는 그러나 다만 FO, 당신은 일을하지 않을 알고있는 프로그램이 작업을 수행하는 경우 R 완성도의 술), 이러한 눈에 보이지 않는 스페이서보기보다는 UILayoutGuide
을 사용하십시오 :
let view1 = ...
let view2 = ...
let layout1 = UILayoutGuide()
view.addLayoutGuide(layout1)
let layout2 = UILayoutGuide()
view.addLayoutGuide(layout2)
let layout3 = UILayoutGuide()
view.addLayoutGuide(layout3)
let views: [String: Any] = ["view1": view1, "view2": view2, "layout1": layout1, "layout2": layout2, "layout3": layout3]
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[layout1][view1(==100)][layout2(==layout1)][view2(==100)][layout3(==layout1)]|", options: .alignAllCenterX, metrics: nil, views: views))
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[view1(==100)]", options: [], metrics: nil, views: views))
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[view2(==100)]", options: [], metrics: nil, views: views))
그것은 애플이 여전히 아직, IB에 배치 가이드를 추가하지 않았습니다 것을 다소 놀라운.
출처
2016-10-15 20:08:57
Rob
스택 뷰 내부의 뷰의 높이와 너비가 변경되어야합니까? 아니면 미리 결정된 값으로 고정되어야합니까? – Adeel
예,이 블록 폭 n 높이는 4에서 6s까지 100으로 일정합니다. ipad의 경우이 값은 150으로 변경됩니다. – khanHussain