ios 158

iOS SwiftUI) List (UIKit의 tableView에 해당)

iOS SwiftUI) List (UIKit의 tableView에 해당) SwiftUI에는 CollectionView는 없고, List만 있는데 이건 UIKit의 tableView에 해당. struct MyList: View { var body: some View { List { ForEach(1...10, id: \.self) { Text("마이 리스트 \($0)") } } } } struct MyList: View { var body: some View { List { ForEach(1...10, id: \.self) { itemIndex in Text("마이 리스트 \(itemIndex)") } } } } 위에 2개 코드블럭은 같은 의미. (맨 위에있는 똑같은 테이블 만들게 됨) 섹션을 넣고 싶다면..

iOS/SwiftUI 2023.02.22

RxSwift 간단 핵심 정리

Reactive Programming entity 방출 요소에 의존, 변경 사항을 구독, 해당 변경 사항에 반응. 왜 RxSwift 이용하는가? 상태를 다시 확인하고 수동으로 코드에 조건을 입력하지 않아도 됨 if -else 나 switch 구문 등을 많이 줄일 수 있다. 비동기 실행 코드를 observable-subscriber method에 의해 깔끔하게 짤 수 있음 핵심 요소 1. Observable : 모든 데이터 유형이 될 수 있는 Entity 모든 다른 유형의 이벤트가 발생 시 Observer에게 요소를 방출 2. Observer: 관찰 가능 항목 구독, 변경사항 수신, 모든 변경사항에 대해 프로그래밍된 조치를 취한다. 3. Dispose Bag: 특정 파일의 메모리 할당이 해제될 때마다 이걸..

iOS/RxSwift 2023.02.18

iOS Swift) 2개 이상의 변수를 한꺼번에 Swap

iOS Swift) 2개 이상의 변수를 한꺼번에 서로 바꾸기 (Swap) Swap several variables between two variables 사용 예시 >> 가운데 언어 switch 버튼 클릭 시 한국어 영어 바꾸기 (버튼 UI 뿐만 아니라 내부 로직도 바꿔줘야 되었음) 적용 코드 예시>> @IBAction func changeLangBtn(_ sender: UIButton) { (firstLang, secondLang) = (secondLang, firstLang) (firstLangCode, secondLangCode) = (secondLangCode, firstLangCode) firstLangBtn.setTitle("\(firstLang)", for: .normal) secondLan..

RxSwift 제일 간단한 테이블뷰 만들기

RxSwift 제일 간단한 테이블뷰 만들기 without tableview 기본 메서드 (cellForRowAt, numberOfRowsInSection이 필요없음) import UIKit import RxSwift import RxCocoa class MainViewController: UIViewController, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! //원래 tableViewItems = ["Item 1", "Item 2", "Item 3", "Item 4"]인데 이걸 Observable 시퀀스로 아래와 같이 변환 let tableViewItems = Observable.just(["Item 1", "Item 2", "..

iOS/RxSwift 2023.02.14

iOS Swift) didSet 사용 예시 (with tableview/ collectionview)

iOS Swift) didSet 사용 예시 (with tableview/ collectionview) func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cellId = String(describing: MyCollectionViewCell.self) let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! MyCollectionViewCell cell.profileImg.image = UIImage(systemName: syst..

DynamicTableView 다른 크기의 셀 높이 지정

DynamicTableView 다른 크기의 셀 높이 지정 아래와 같이 description Label 의 길이가 제각각이어서 서로 다른 크기의 셀 높이를 갖는 테이블 뷰! TIL Dynamic Tableview 만들 때 테이블뷰 아래까지 꽉 차게 0 0 0 0 constraints를 잡는데 다만, 주의할 점은 다음과 같다. 아래 constraints 세부사항을으로 들어가서 safe area bottom 이 아닌 superview.bottom 에 constraint를 건다. Stackview 관련 1) Stackview일단 만든다 -> 너비 높이가 지정이 안되어있을 건데, Label 또는 button 하나만 넣어도 일단 파란불 들어옴. 2) 그 다음에 요소를 여러개 넣고 싶으니까 당연히 Stackview..

iOS swift 구글로 로그인

https://developers.google.com/identity/sign-in/ios/start-integrating?hl=ko iOS 및 macOS용 Google 로그인 시작하기 | Authentication | Google Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 iOS 및 macOS용 Google 로그인 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류 developers.google.com 1. Cocoapods 설치 pod init 참고) Xcode에서 코코아팟 설치시 최근 에러가 남 해결방법: 아래 Xcode 14.0-compatible -> Xcode 13.0..

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌2]

RxSwift 란? 비동기로 생기는 결과값을 컴플리션 형태가 아닌 리턴값으로 나타내기 위해 쓰는 유틸리티 (URLSession 이나 Alamofire에서 completion 에 나타나는 코드들이 너무 길어서 깔끔하게 쓰고 싶었던 적이 많았을 것이다) 사용 방법에는 2가지가 있다. 1) create - 비동기로 생기는 데이터를 Observable로 감싸서 처리하는 방법 2) subscribe - Observable로 오는 데이터를 받아서 처리하는 방법 *한 번 생성된 Observable이 disposed 되면 다시 사용 불가. 새로 만들어주어야 함. *위에처럼 RxSwift를 쓰다가 너무 길어져서 이걸 짧게 줄이고 코드를 간결하게 쓰고 싶기에 나온 애들이 SugarAPI. SugarAPI 는 operato..

iOS/RxSwift 2023.01.12

ios swift) 테두리 둥글게 - clipsToBounds

https://songios.tistory.com/43 [iOS] clipsToBounds 란 무엇인가? (feat. 모서리를 둥글게 둥글게) 막연하게 cornerRadius를 주기 위해 필요한 것. 정도로 알고 있던 clipsToBounds. 그런데 이 설정을 주더라도 모서리 둥글게가 먹히지 않을 때가 있어서 이건 정확히 뭘까 궁금했는데, 주말을 맞은 김에( songios.tistory.com clipsToBounds 위 블로그 요약> snapkit stackview에 여러개의 뷰를 넣을 때 유용한 것으로 판단. view 안에 다른 view가 들어가는 경우, 바깥 view에다가 clipsToBounds를 주게 되면 바깥 뷰가 둥글게 깎이고, 안 view에다가 clipsToBounds를 주게 되면 안에 ..