prototype
의 순서에 따라 UI 형태가 완전히 달라진다.padding()
를 먼저 실행시키는지, background()
을 먼저 실행시키는지에 따라 글자의 여백이 다르게 보인다.padding()
을 먼저 실행시킨 사진)background()
을 먼저 실행시킨 사진)frame()
: width
, height
, align
을 조정할 수 있다.cornerRadius()
: 테두리의 굴곡background()
: 배경padding()
: 여백foregroundColor()
: 글자 색 또는 이미지 아이콘 색상을 변경edgesIgnoringSafeArea()
: 노치영역을 가득채울지, 위 또는 아래부분만 채울지 정하는 속성화면을 구성할때 가장 기본이 되는 구조이다. HStack
, VStack
, ZStack
세 가지가 존재한다.
사용 예시코드)
HStack() {
...
}
HStack()
: 가로 STACKVStack()
: 세로 STACKZStack()
: Z축 STACK화면 전체를 색으로 감싸기 위해선
ZStack
을 주로 사용한다.
edgesIgnoringSafeArea(.all)
를 이용하면 아이폰 노치영역까지 채울 수 있다.
예시코드)ZStack { Color.blue .edgesIgnoringSafeArea(.top) Text("hello bro") }
사용 예시코드)
Text("Hello Swift")
.bold()
.lineSpacing(1)
font()
: 글자 크기bold()
: 글자 굵기를 bold 로 지정underline()
: 밑줄truncationMode()
: 글자가 frame
값 보다 초과하는 경우 글자를 ...형태로 표시함, .head
, .middle
, .tail
의 속성이 있음lineLimit()
: 문단의 줄을 최대 몇줄로 표시할지 지정lineSpacing()
: 문단의 줄 간격사용 예시코드)
Image("bg1")
.mask(VStack{
Circle()
Circle()
})
aspectRatio()
: 이미지 비율 조정mask()
: 이미지 마스킹 처리 (보통 원을 그릴때 cornerRadius()
를 사용하지 않고 mask(Circle())
를 사용)Swift UI XCode 내에 시스템 아이콘들을 간단하게 불러올 수도 있다.
검색시 'SF Symbols' 검색
wifi 아이콘 이미지 불러오는 예시코드)Image(systemName: "wifi")
이미지는 이미지간 간격이 보통 spacing 8 정도의 값으로 간격이 떨어져서 나오게 된다.
간격 조절 Tip)
1. Stack 내부에 이미지가 존재하는 경우 stack parameter값에 spacing으로 조정
2. 각 이미지별 padding 값으로 조정
사용 예시코드)
circle()
.fill(Color.blue)
fill()
: 도형의 색을 지정stroke()
: 도형의 테두리 선을 지정 (선굵기, 선종류, 선색상 등)Rectangle()
: 사각형RoundedRectangle()
: 둥근 사각형Circle()
: 원Capsule()
: 캡슐형태의 타원Ellipse()
: 원형태를 유지하면서 변하는 원사용 예시코드)
@State private var isTest = true;
var body: some View {
VStack(){
Button(
action: {
isTest.toggle()
},
label: {
/*@START_MENU_TOKEN@*/Text("Button")/*@END_MENU_TOKEN@*/
}
)
Text("isTest = \(isTest.description)")
}
}
Toggle 사용 예시코드)
Toggle(
"toogle = \(isTest.description)",
isOn: $isTest
)
list 사용 예시코드)
List{
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
}
list-section 사용예시 코드)
List{
Section(header:Text("HEAD"), footer: Text("FOOT")) {
Text("item1")
Text("item2")
}
}