궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFTUI/View layout

SwiftUI : FixedSize - View의 크기를 동일한 너비/높이로

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

FixedSize 에 대해 알아보도록 합시다.

FixedSize

.fixedSize(horizontal: false, vertical: true) //높이를 동일한 크기로
.fixedSize(horizontal: true, vertical: false) //너비를 동일한 크기로

SwiftUI에서는 frame() 수정자를 fixedSize()와 결합하여 동일한 높이 또는 동일한 너비를 원하는지 여부에 관계없이 동일한 크기의 두 개의 뷰를 쉽게 만들 수 있습니다. 비슷한 수정자인 GeometryReader는 필요하지 않습니다.

 

 

크기를 원하는 각 뷰에 최대 높이 또는 너비를 제공합니다. 그러면 사용 가능한 모든 공간을 채우기 위해 자동으로 늘어납니다.

그런 다음 해당 뷰가 필요한 공간만 차지해야 한다고 SwiftUI에 알리는 fixedSize()수정자를 컨테이너에 적용합니다.

 

결과적으로 SwiftUI는 뷰에 필요한 최소한의 공간을 파악한 다음 전체 공간을 차지할 수 있습니다. 두 뷰는 포함된 내용에 관계없이 항상 크기가 일치합니다.

동일한 높이

동일한 높이로 frame을 지정해주겠습니다. .fixedSize(horizontal: false, vertical: true)

        HStack(spacing: 10) {
            Text("나랏말싸미 듕귁에 달아 문자와로 서르 사맛디 아니할쎄")
                .padding()
                .frame(maxHeight: .infinity)
                .background(Color.blue)
               
            Text("이런 전차로 어린 백셩이 니르고져 홇베이셔도")
                .padding()
                .frame(maxHeight: .infinity)
                .background(Color.green)
                
            Text("마참네 제 뜨들 시러펴디 몯핧 노미하니아 내 이랄 윙하야 어엿비너겨 새로 스믈 여듫 짜랄 맹가노니")
                .padding()
                .frame(maxHeight: .infinity)
                .background(Color.yellow)
               
        }
        //높이가 동일하게
        .fixedSize(horizontal: false, vertical: true)
        .frame(maxHeight: 200)
    }

동일한 너비

동일한 너비로 frame을 지정해주겠습니다. .fixedSize(horizontal: true, vertical: false)

        VStack {
            Button("서근 개발 블로그") {}
                .foregroundColor(.black)
                .padding()
                .frame(maxWidth: .infinity)
                .background(Color.yellow)
                .clipShape(Capsule())
            
            Button("로그인") {}
                .foregroundColor(.black)
                .padding()
                .frame(maxWidth: .infinity)
                .background(Color.green)
                .clipShape(Capsule())
        }
        // 너비가 동일하게
        .fixedSize(horizontal: true, vertical: false)

TIP
 
 

이 fixedSize()  외에도 더 복잡한 방법이 있는데 엄청 복잡합니다.
현재 SwiftUI에서는 이 fixedSize() 수정자를 사용하는 것이 제일 현명합니다 :)

 

읽어주셔서 감사합니다🤟

 

참고하면 좋은 게시글👇🏻

 

SwiftUI : AspectRatio / GeometryReader

본 게시물은 Hacking with swift 를 참고하여 작성되었습니다. Hacking with swift Hacking with Swift – learn to code iPhone and iPad apps with free Swift 5.3 tutorials “Everything that you need, noth..

seons-dev.tistory.com

 

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.