| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- Protocol
- 스위프트
- Human interface guide
- combine
- ios
- collectionview
- Clean Code
- 리팩토링
- scrollview
- tableView
- Xcode
- swiftUI
- UICollectionView
- UITextView
- 클린 코드
- 리펙토링
- swift documentation
- SWIFT
- RxCocoa
- MVVM
- uiscrollview
- map
- clean architecture
- HIG
- ribs
- uitableview
- Refactoring
- rxswift
- 애니메이션
- Observable
- Today
- Total
목록swiftUI (181)
김종권의 iOS 앱 개발 알아가기
목차) SwiftUI의 기본 - 목차 링크 TextField 값을 입력받을 수 있는 컴포넌트 SwiftUI에서는 @State 상태 프로퍼티 하나를 두고 값이 입력되면 여기에도 입력되도록 구현 struct ContentView: View { @State private var username = "" var body: some View { TextField( "User name", text: $username ) } } @FocusState 텍스트 필드의 포커스 (firstResponder) 관리는 @FocusState를 사용하면 매우 손쉽게 코드에서도 제어가 가능 @FucusState에 사용할 텍스트 필드의 타입을 정의 enum Field { case username case email } email 텍스..
목차) SwiftUI의 기본 - 목차 링크 Text Text()로 사용 struct ContentView: View { var body: some View { Text("text") } } underline, strikethough, baselineOffset struct ContentView: View { var body: some View { VStack { Text("text1") Text("underline") .underline() Text("strikethrough") .strikethrough() Text("base line ofset(30)") .baselineOffset(30) } } } kerning과 tracking kerning은 문자간의 offset을 조절 tracking은 후행 ..
목차) SwiftUI의 기본 - 목차 링크 View Protocol View 프로토콜 프로토콜이고, body라는 computed property를 가지고 있는 타입 view를 입력할 수 있게하는 인터페이스를 제공하는 역할 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) public protocol View { associatedtype Body : View @ViewBuilder var body: Self.Body { get } } @ViewBuilder @resultBuilder를 사용하여 정의한 struct 형 @resultBuilder는 swift5.4에서부터 나온 api이며, 개념은 이전 포스팅 글 참고 (@resultBuilder를 사..
Views and Controls View protocol Text, Text ViewModifier TextField TextField ViewModifier, SecureField Font Image SF Symbols Button, ButtonStyle ButtonStyle, PrimaryButtonStyle을 이용한 커스텀 버튼 EditButton, PasteButton Toggle, ToggleStyle을 이용한 커스텀 토글 Picker, PickerStyle DatePicker, ColorPicker Slider Stepper NavigationView, NavigationLink Layout, Presentation HStack, VStack, ZStack, LazySatck List (리프..
App이란? Star라는 앱을 만들면 자동으로 StarApp.swift파일과 ContentView.swift파일이 자동으로 생성 App을 상속받고 있는 StarApp을 확인 import SwiftUI @main struct StarApp: App { var body: some Scene { WindowGroup { ContentView() } } } App이란? 앱의 구조와 동작을 나타내는 타입 App 위에는 @main이라는 어노테이션을 사용하여 앱의 entry point를 명시하여 같이 사용 cf) SwiftUI를 공부하면서 사용할 유용한 단축키 (document 오픈 + 검색): control + cmd + option + / body라는 computed property를 이용하여 앱의 content..
다른 글) SwiftUI의 기본 - 목차 링크 TextField placeholder와 값을 입력할 수 있는 컴포넌트 사용할땐 @State 프로퍼티를 하나 두고 이 프로퍼티에 바인딩하여 현재 입력값을 상태에 저장 struct ContentView: View { @State private var username = "" var body: some View { TextField( "User name", text: $username ) } } TextField 활용 키보드 타입 .keyboardType(_:) TextField( "User name", text: $username ) .keyboardType(.numberPad) //
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 macOS 실행 시 Sidebar가 들어나지 않는 문제 해결 방법 macOS를 실행하면 Sidebar를 한 번 닫았을 때 다시 열 수 없는 문제가 존재 iOS에서 List형태 안에 NavigationLink로 구현하면 macOS에서는 아래처럼 좌측에는 리스트, 우측에는 NavigationLink에 삽입한 화면이 등장 LandmarkCommands 라는 파일 생성 LandmarkCommands 안에 SidebarCommands()를 선언 import SwiftUI struct LandmarkCommands: Commands { var body: some Commands { SidebarCommands() } } LandmarksApp에 .co..
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 ToolBar, Picker로 맥북앱에 어울리는 UI 구현 방법 Toolbar 사용 방법 .toolbar로 바로 추가 LandmarkList.swift에 추가 수정 전 수정 후 var body: some View { NavigationView { List { Toggle(isOn: $showFavoritesOnly) { Text("Favorites only") } ForEach(filteredLandmarks) { landmark in NavigationLink { LandmarkDetail(landmark: landmark) } label: { LandmarkRow(landmark: landmark) } } } .navigationTitl..
