본문 바로가기

iOS

(27)
SwiftUI 뷰의 변화 감지 오늘의 주제는 SwiftUI에서 뷰의 변화 감지를 할 수 있는 modifier에 대해 알아보겠습니다! 사실 이런 것들에 대해서 진짜 진짜 최근에 알게 되었는데 처음으로 본게 .onAppear 이거등여 근데 찾아보니까 저거랑 비슷한 역할을 하는 친구들이 몇개 더 있더라구요 아직 다 써본건 아니지만 자주 쓸거같아여 한번 정리해보려고 합니다!!~ 여기서 소개하는 친구들은 뷰의 변화를 감지하고 대응하기 위한 modifier들입니다! onChange(of:perform:) 에 대해서 알아보려고 했는데… onChange(of:perform:) | Apple Developer Documentation onChange(of:perform:) | Apple Developer Documentation Adds an act..
UIKit TableView (1) 스유에서는 List 유킷에서는 TableView가 있는데 개인적인 생각으로 정~~말 많이 사용하는 거 같음 근데 맨날천날 까먹어서 한번 정리해 보도록 하겠습니다!! (사실 잘 몰라서 공부하면서 계속 추가할꺼임) 기본 여러 Cell을 이용해 하나의 열, 다수의 행을 이용해 수직 스크롤 테이블을 만듬 섹션으로 행을 그룹화하여 콘텐츠를 묶을 수 있음 (아이폰의 설정앱 마냥) 섹션에는 header와 footer를 붙혀 추가 정보를 표현할 수 있음 Delegate, DataSource DataSource는 데이터를 받아 View를 그려줌 Delegate는 테이블 뷰 동작과 외관을 담당함 . View가 변경되는 사항을 Delegate가 담당하고 View는 Delegate를 의존해 업데이트함. DataSource는 ..
[TIL] 23.07.05 학습 내용 프로퍼티 래퍼 @Binding, ObservableObject 사실 기억나는건 이게 다인데.. 근데 적어보니깐 엄청 몇개 없어 보이는데 엄청엄청 좋고 중요한 내용이었던거 같음!!!! 진짜 정확하지 않은 정보들이 넘쳐날 수 있으니깐 참고하고 태클해주세여 프로퍼티 래퍼(Property wrapper) 내가 이해한 프로퍼티 래퍼는 동일한 기능을 수행하는 연산 프로퍼티가 존재할 경우 효율성? 재사용성 뭐.. 그런거 등등을 위해서 프로퍼티 래퍼로 만들어서 쓸 수 있다고 이해해씀. 그러니깐 연산 프로퍼티를 -> 프로퍼티 래퍼로 변환해서 로직을 구현할 수 있다는 거임 프로퍼티 래퍼를 만들때는 @propertyWrapper 라는 키워드를 이용해서 클래스, 또는 구조체를 선언하고, 게터, 세터를 포함한 wra..
SwiftUi DataBinding 이 게시글 내용은 공부하면서 점차 수정해 나갈 예정입니당 2023.6.26 13:31 작성 ----------- SwiftUI → 데이터 주도 방식으로 앱 개발을 강조 publlisher와 subscriber 구축 데이터와 UI 뷰 사이 데이터 변경에 따른 처리 코드 없이 뷰가 업데이트 가능. 이를 위해 SwiftUI는 상태 프로퍼티, Observable 객체, Environment 객체를 제공 → UI의 모양과 동작을 결정하는 상태 제공 뷰와 바인딩된 상태 객체가 상태에 따라 자동으로 뷰 업데이트 상태 프로퍼티, State property 상태에 대한 가장 기본적인 형태 뷰 레이아웃의 현재 상태를 저장하기 위해 사용 토글 버튼 활성화 여부, 텍스트 필드의 텍스트, 피커 뷰의 현재 선택 … 등 간단한 데..
Instance Method / prefix(_:), suffix(_:) # Array의 인스턴스 메소드 prefix / suffix 사용하기!!! 저는 그냥 간단하게 기능만 작성해보려고 했는데... 매개변수에 따라서 종류가 생각보다 많더라구요...? 그래서 그냥 하는김에 와장창 다 정리해보려고 합니다!! # prefix / suffix의 반환 타입 prefix와 suffix는 Array의 인스턴스 메서드입니다. 따라서 반환되는 값의 타입을 Array라고 생각하실 수 있는데 사실 ArraySlice라는 타입을 반환합니다. let arr: [Int] = [1, 2, 3] print(type(of: arr)) print(arr) //Array //[1, 2, 3] print(type(of: arr.prefix(1))) print(arr.prefix(1)) print(type(of..
Initializer / init(repeating:count:) repeating과 count를 이용하여 초기화하는 방법!!!!! init( repeating repeatedValue: String, count: Int ) 이는 String이나 Array에서 사용할 수 있는 초기화 방법입니다 Parameter의 종류는 다음과 같습니다. repeatValue 반복될 string 문자열을 입력합니다. count 입력한 숫자 Int 만큼 repeatValue의 문자열을 반복합니다. 다음은 Initializer 사용의 예시입니당. let s = String(repeating: "ab", count: 10) print(s) // Prints "abababababababababab" let fiveZs = Array(repeating: "Z", count: 5) print(fi..
Function / print(_:separator:terminator:) print를 할 때 separator, terminator를 이용하여 출력하는 방법! func print( _ items: Any..., separator: String = " ", terminator: String = "\n" ) Parameter의 종류는 다음과 같습니다. items print할 아이템 입력 separator 각각의 아이템들 사이에 출력할 문자열을 의미. 기본값은 스페이스바(" ")입니다. terminator 모든 아이템들을 출력한 이후 출력할 문자열을 의미 기본값은 개행("\n")입니다. 다음은 함수 사용의 예시입니당. print("One two three four five") // Prints "One two three four five" print(1...5) // Prints ..