일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- SWIFT
- map
- ribs
- collectionview
- 리팩토링
- combine
- Clean Code
- HIG
- swiftUI
- Observable
- 리펙터링
- uitableview
- swift documentation
- clean architecture
- rxswift
- MVVM
- tableView
- ios
- Refactoring
- Protocol
- 스위프트
- Human interface guide
- 애니메이션
- RxCocoa
- Xcode
- 리펙토링
- UITextView
- uiscrollview
- UICollectionView
- 클린 코드
- Today
- Total
목록iOS 접근성 (SwiftUI) (3)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l6AYz/btsLjT8lNbe/CfHHqhnQ4UPx5qQJK7O250/img.png)
명령형 vs 선언형 코드 작성의 흐름명령형 프로그래밍"어떻게" UI를 업데이트할지 명시적으로 작성let label = UILabel()label.text = "Hello, World!"label.textColor = .bluelabel.frame = CGRect(x: 0, y: 0, width: 200, height: 50)view.addSubview(label) 선언형 프로그래밍좀 더 코드가 뷰의 형태와 닮은 형태로 작성struct ContentView: View { var body: some View { Text("Hello, World!") .foregroundColor(.blue) .frame(width: 200, height: 50) ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VblHj/btsKtFEF9MJ/t1z7DeocqBwEAXpsSa47X1/img.png)
커스텀 뷰cornerRadius가 들어간 버튼을 만들어야할 때, SwiftUI에서는 두 가지 방법이 존재1) RoundedButton 뷰 만들기2) ViewModifier로 정의하고 뷰에 이 modifier 등록하기SwiftUI에서는 ViewModifier를 두어서, 커스텀 뷰 뿐만이 아닌 커스텀 스타일을 사용하는곳에서 간편하게 사용할 수 있도록 설계cornerRadius가 들어간 버튼의 스타일은 여러곳에서 사용할 수 있으므로 ViewModifier로 추상화하기커스텀 뷰를 만드는 것이 아닌, 커스텀 스타일을 만드는 것ViewModifier로 커스텀 스타일 만들기ViewModifier로 만들기 전에 커스텀뷰로 먼저 만들어보면 아래처럼 만들기가 가능하지만 단순히 스타일을 적용하고 여러 버튼에 재사용하려는 목..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b351rf/btsJ24dBc39/QQpriK6K51zCKw5GfMsyn1/img.png)
우선순위 처리 방법보통 OS에서 왼쪽 상단에서 시작하여 오른쪽을 읽고 아래로 순차적으로 읽어줌지구본의 이미지 -> Hello, world! -> toggle buttonex)Hello, world!가 가장 중요할 때, Hello, world!를 가장 먼저 읽히게 하고 싶은 경우?해당 뷰에 accessibilitySortPriority를 높게 설정하기 (값이 높을수록 가장 먼저 읽힘)따로 이 값을 설정 안하면 디폴트 값은 0ex) "Hello, world!" 뷰를 accessibilitySortPriority를 1로 설정struct ContentView: View { @State private var toggle = true var body: some View { VStack..