일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- withAnimation
- UIKit
- stateobject
- toolbarvisibility
- view
- authentication
- ios
- gesture
- arkit
- 최적화
- RxSwift
- combine
- SwiftUI
- iphone
- swift
- Performance
- Concurrency
- firebase
- Network
- auth
- dataflow
- 접근성제어
- Animation
- CS
- 네트워크
- avsession
- WWDC
- 달력
- GCD
- state
- Today
- Total
목록Home (56)
XLOG
파이어베이스는 회원가입, 로그인, 회원 관리 기능을 제공한다. 로그인 수단으로는 Email and password, Federated identity provider integration(Google, Facebook, Sign in with Apple, Twitter, GitHub), Phone number authentication, Custom auth system, integration, Anonymous auth 가 있다. 위와 같은 방법에서 무료 버전의 경우는 3,000 DAUs( daily active users ) 까지라고 한다. 사용량을 더 늘리고 싶다면 유료버전을 사용해야 한다고 한다. 유료버전을 사용하게 되면 몇가지 기능을 더 제공하는 것 같다. How does it work? 우선 ..
iOS 15 부터 UITableView 섹션 헤더에 기본 패딩이 적용되어 있다. 섹션 헤더 패딩값을 제로로 만들기 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { if #available(iOS 15.0, *) { UITableView.appearance().sectionHeaderTopPadding = .zero } return true }

사용할 방법은 GeometryReader 와 preference 를 이용한다. 그러기 위해 우리는 GeometryReader 를 먼저 알아야 한다. GeometryReader는 컨테이너 뷰가 가지고 있는 사이즈, 좌표공간을 반환해주는 함수 이다. 그렇다면 preference 란 무엇일까? 주어진 preference(선호?)로 값을 set 해준다는게 무슨 말일까….. 이것은 SwiftUI 가 view의 사이즈, 위치를 어떻게 결정을 하는지에 대한 원리에 대한 이해가 필요하다. 자세히 작성을 하다보면 내용이 너무 길어진다. 그냥 간단하게 보통 상위뷰에서 하위뷰로 데이터를 전달하는데 가끔 우리는 하위뷰에서 상위뷰로 데이터를 전달을 하고 싶을 때가 생긴다. 그때 하위뷰가 원하는(선호하는) 데이터(사이즈, 위치 ..
ForEach 를 사용하여 카드컴포넌트를 구성한 후, 각 컴퍼넌트에 onTapGesture를 적용했더니, 터치 영역에 문제가 생겼다. 인덱스 0 번의 컴퍼넌트 중간 아래부분 부터는 인덱스 1번 영역으로 터치가 인식되는 것이었다. resizable을 적용한 후, onTapGesture를 적용하였지만, resizable이 먹히지 않은 것 같다는 생각에 검색을 해봤다. 기존 코드 예시 var body: som View { ForEach(Array(myArray.enumerated()), id: \.offset) { index, item in cardView(item: item, index: index)) } } @ViewBuilder func cardView(item: itemType, index: Int) ..
SwiftUI의 경우 view에 onTapGesture를 추가하게 되면 간단하게 탭제스쳐에 반응을 할 수 있게 된다. 하지만 UIKit에서는 onTapGesture가 없다. 하지만 개발을 하다보면 버튼이 아닌 imageView 나 기타 UIView에 액션을 추가하고 싶은 일이 발생한다. 우리에게 필요한것은 gesture 객체와, view가 필요하다. 또한 viewController에 view에 isUserInteractionEnabled 의 변수 값을 true로 설정해주면 된다. private let actionView = UIView() let gesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(t..
우리는 UITextField를 컨트롤 하기 위해 UITextFieldDelegate를 상속받아야 한다. UITextFieldDelegate에는 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {} 함수가 존재하는데 return 값이 true 면 수정이 가능하며, false 면 textfield 값의 수정이 불가능 하다. 맨처음 접근은 위의 함수에서 string 값의 갯수를 카운트하여 갯수에 따라 return 값을 조절해 주려고 했다. 하지만 한글은 초성, 중성, 종성이 결합되어 한글자로 카운트가 되어야 한다. 하지만 위에 함수에서는 ..