전체 글 (219) 썸네일형 리스트형 Equatable, Hashable, Identifiable 함 정리 하고 넘어갈라고욤 Equatable - 같은지 비교할 수 있어야 함두 값이 같은지 판단할 수 있게 해주는 프로토콜== 연산자가 자동 생성되거나, 직접 정의할 수 있다.struct Person: Equatable { let name: String let age: Int}let a = Person(name: "Alice", age: 20)let b = Person(name: "Bob", age: 20)print(a == b) // falseEquatable 이 없다면 == 비교 자체가 불가능 Hashable - 고유값을 만들어서 저장하거나 찾을 수 있어야 함Dictionary 나 Set 같은 곳에 객체를 쓸 수 있게 하려면 고유한 해시값이 필요하다.SwiftUI에서 \.self 를 I.. 키 경로 KeyPath (\.) 코드를 작성하다 보면아니 사실 만들어져 있는(ㅋㅋ) 코드를 보다보면이런 역슬래쉬에 온점(periode)가 함께 있는걸 자주 보게되는데역시나 별 생각없이 그냥 그렇구나~ 하다가이게 뭐냐는 질문에 에..? 글쎄요 뭘까요,,? 하다 찾아 보게되었음. 앞으로 역슬래쉬는 ₩로 표시될거임.. 하 ... \.는 keyPath를 나타내는 문법\. 뒤에 오는 것은 어떤 타입의 속성(property)을 가리키는 경로를 의미한다.List(users, id: \.id) { user in Text(user.name)}여기서 \.id 는 각 user 객체의 id 속성을 의미하는 KeyPath List 는 각 user 의 고유한 식별자로 id 를 사용하겠다는 뜻 KeyPath특정 루트 유형에서 특정 결과 값 유형으로 가는 키.. TextEditor 커다란 텍스트 필드 같은 느낌이UIKit에서는 UITextView 를 사용했었는데SwiftUI에서는 무엇일까!?바로바로~!!!! TextEditor 이당! TextEditor긴 텐스트를 표시하고 편집할 수 있는 보기 TextEditorView를 사용하면 여러 줄로 스크롤 가능한 텍스트를 표시하고 편집할 수 있다.font( :), foregroundColor( :), multilineTextAlignment( :) 등의 상속된 특성들을 사용할 수 있다. 문자열 변수에 바인딩하여 초기화struct TextEditingView: View { @State private var fullText: String = "This is some editable text..." var body:.. 배경색 넣기 문제.. 뭔데요;저 흰줄 뭔데요내가 생각한 화면 구성에서는 ZStack위에 VStack으로 텍스트가 올라가있는 상태라ZStack의 background 색을 설정해주면 전체가 색이 변할거라고 생각했는데중간에 저런게... 저런줄이... 생겼다... ignoresSafeArea() 를 쓰라는데.. 써도 똑같은..ㅠ 그래서 걍 구조를 바꿔버렸다뷰들이 쌓이는걸 진짜 잘 생각해야할거같은데아직 넘 어려운거같아요... enum으로 케이스 나눠버린다음에그냥 전체화면에 ZStack으로 한다음 처음에 바로 배경색으로 감싸줘봤음 ZStack { Color.backColor이렇게 써주면 저렇게 밑에가 색이 안채워지구요 ZStack { Color.backColor... 네비게이션 바 background 스크롤뷰로 인해 스택이 쌓이면 스크롤을 할 수 있는데오잉... 네비게이션 바 뒤로 화면이 보이잖아..?이건 내가 원한게 아니야... 찾아보니 iOS 15 이상부터 네비게이션 바는 기본적으로 투명(transparent)이고별도의 설정을 하지 않으면, 스크롤 시 아래 컨텐츠가 네비게이션 바 아래로 비쳐보인다. SwiftUI에서 불투명하게 설정하려면.toolbarBackground(.visible, for: .navigationBar)이렇게 해주면 된다! 저 코드를 작성해주면 이렇게 스크롤해도 뒤에 안비친다~그런데 나는 저 ,, 네비게이션 바 밑에 줄이 생기는게 싫어서없애는법이 없나 찾아봤는데..SwiftUI내에서는 할 수 없고ㅠ없애려면 UIKit을 사용해야해서 이번에는 SwiftUI로만 하기 위해 포기했담..! SwiftData 기본적인 내용..이라고 해야할까..? 이번 프로젝트에서 사용해야하는 로컬 저장은..SwiftData로 정했다! 코어데이터랑 고민 중에 스유에서는 스위프트데이터가 더 적합하고 최적화가 잘 되어있다 생각해서 결정! 공식문서와 블로그들을 찾아보면서 정리를 할거라 틀린거 있을 수 있음 ...그냥 개념같은거만.,, 정리하고 적용하는 코드들은 다음에.. SwiftData관리형 지속성과 효율적인 모델 패칭을 추가하려면 모델 코드를 선언적으로 작성하세요.iOS는 17.0 버전 이후부터 가능 (최저 버전을 적어도 17로 잡아야한다..?) CoreData의 검증된 지속성 기술과 Swift의 최신 동시성 기능을 결합한 SwiftData를 사용하면 최소한의 코드로 외부 종속성 없이 앱에 지속성을 빠르게 추가할 수 있다.SwiftData는 로컬에서 생성된 콘텐.. HIG 공부 ~하는중~ HIG는 모든 Apple 플랫폼에서 탁월한 경험을 제공할 수 있도록 도움을 주는 지침과 모범 사례를 포함합니다.-by. developer.apple.com HIG를 알아야 하는 이유는..!.. 사용자에게 익숙하고 편리한 경험을 제공하고애플 생태계에 맞는 고품질 앱을 만들며앱스토어 심사를 원활히 통과하고개발.디자인 협업과 의사결정을 효율적으로 하기 위함이다. 근데 HIG 너무 많자나요...이거 다 언제봐요일단 내가 당장 필요한거같은거만 골라서 정리해볼게욥왜??내가 볼거니까. 일단 시작하기에 있는 iOS용으로 디자인하기 부터 봅시다...어.. 음.. 이걸 어떻게 정리해? 모범 사례만 좀 써볼게요 탁월한 iPhone 경험을 제공하려면 사람들이 가장 중요하게 생각하는 플랫폼 및 기기의 기능이 통합되어야 합.. 네비게이션바 라지타이틀 없애버리기... ㅋㅋ 코딩하는데 진짜 내맘에 안들게 화면이 그려지는 것이 아닌가이따위머 패딩값도 주긴했지만 이건 지금 해결하고나서 급하게 다시 하느랴 그런건데패딩없애도 저 타이틀이랑 사이가 진짜 넓은 것임..다음 화면도 ㅋㅋ아 왜 이러는 것일까,,,스택 들어가면서 먼가 잘못된걸까 고민하다가하이어라키를 함 봐야겠다 싶어서 봤는데요???????NavigationBarLargeTitleView요??????걍 라지가 기본값이라는걸 잊은거죠 머툴바로 타이틀 작성해서 네비게이션 생각도 못함ㅋㅋㅋㅋㅋ ㅋㅋㅋ이거 찾아보니까 navigationtitle이 라지인 상태로 다음 화면으로 넘어갈 경우에다음 화면에서 navigationtitle이 없는 경우에도 네비게이션바타이틀의 크기만큼 공백이 생긴채로 나온다고 한다 ... 이전 1 2 3 4 ··· 28 다음