인프런 커뮤니티 질문&답변

김태균님의 프로필 이미지

작성한 질문수

SwiftUI 초급 강의 - 기본 개념 익히기

Picker 요소

해결된 질문

21.12.09 16:28 작성

·

228

0

안녕하세요 다름이 아니라 Picker 사용하기를 보면서 잘 안되는게 있어서 질문 드립니다.

 

코드를 그대로 쳤음에도 저한테는 Picker 안의 label 의 텍스트가 화면에는 보이지 않습니다 또한 이 Text 를 VStack 에 넣었음에도 바로 왼쪽으로 붙는것은 따로 설정을 하신게 아닌지 궁금합니다!

 

답변 1

1

Hohyeon Moon님의 프로필 이미지
Hohyeon Moon
지식공유자

2021. 12. 09. 23:36

안녕하세요!

SwiftUI는 공개된지 얼마되지 않은 프레임워크로 지난 몇년간 매년 급변하고 있습니다. 그에 따라, 영상 혹은 글 속의 코드도 몇년 전과는 다르게 작동하고 있습니다. 같은 결과물을 내기 위해서는 아래 코드를 참고해주세요.

Picker의 default 스타일이 WheelPickerStyle에서 다른 스타일로 변경되었고, 그에 따라 스타일을 WheelPickerStyle로 따로 지정해주고 Label도 따로 만들어줘야 하는 상황이 되었습니다.

감사합니다.

import SwiftUI

struct SwiftUIView: View {
  var colors = ["Red", "Green", "Blue", "Tartan"]
  @State var selectedColor = 0
  
  var body: some View {
    VStack {
      HStack {
        Text("Please choose a color")
        
        Picker("", selection: $selectedColor) {
          ForEach(0 ..< colors.count) {
            Text(self.colors[$0])
          }
        }
        .pickerStyle(WheelPickerStyle())
        .frame(width: UIScreen.main.bounds.width - 100)
      }
      
      Text("You selected \(colors[selectedColor])")
    }
  }
}

struct SwiftUIView_Previews: PreviewProvider {
  static var previews: some View {
    SwiftUIView()
  }
}