일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙터링
- 애니메이션
- ribs
- tableView
- combine
- clean architecture
- 클린 코드
- ios
- 스위프트
- Observable
- RxCocoa
- HIG
- uiscrollview
- collectionview
- Xcode
- Refactoring
- MVVM
- UITextView
- 리펙토링
- UICollectionView
- rxswift
- SWIFT
- 리팩토링
- Protocol
- Clean Code
- uitableview
- swift documentation
- map
- swiftUI
- Human interface guide
- Today
- Total
목록swiftUI (116)
김종권의 iOS 앱 개발 알아가기
목차) 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..
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 macOS UI 구현 LandmarkList.swift .frame(minWidth)값을 주어서 뷰의 크기를 크게 설정 (단, 다양한 플랫폼을 제공하려면 watchOS에서 minWidth를 사용하면 화면이 이상하게 될것이므로 이것은 아래에서 수정 예정) 수정 전 수정 후 struct LandmarkList: View { @EnvironmentObject var modelData: ModelData @State private var showFavoritesOnly = false var filteredLandmarks: [Landmark] { modelData.landmarks.filter { landmark in (!showFavoritesO..