macOS, iOS

[SwiftUI] HStack children equal sized로 만들기

SweetDev 2021. 4. 2. 22:51

UIStackView에서는 엄청 쉬웠다..fill equally옵션을 사용하면 됐다.

그러나 SwiftUI에서는 꽤 어렵다!

 

왜냐면 SwiftUI의 패러다임에서는 더이상 부모뷰가 자식의 사이즈를 결정할 수 없기 때문이다. 자식이 결정한 사이즈를 부모는 무조건 받아들여야 한다. 

 

따라서, 각 자식뷰는 자신의 사이즈를 infinity로 한다. 모든 자식뷰가 사이즈가 infinity이면 1/n해서 나누게 된다. 

 

.frame(maxWidth: .infinity)