일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 상단 탭바
- detect url
- UIPresentationController
- wkwebview
- url 관찰
- List
- convert base64
- editTextInputFilter # kotlin #ime #edittext #android #ineoption
- base64 변환
- Side Menu
- Android
- transformation.map
- oberve url
- DataBinding
- 기존 앱
- UIViewControllerTransitioningDelegate
- Xcode 단축키
- scrolling tab
- GeometryReader
- rxjava #kotlin #debounce #rxjava 응용 #rxbinding
- DevelopmentRegion
- ios
- swift #swift keychain #keychain 사용법
- url 추적
- notifychanged
- 개발자 면접
- pod install
- 스크롤 탭
- swift
- development language
- Today
- Total
목록IOS (28)
버그 잡이
1. 앱 사용 중 Home 버튼을 누른 경우 2. 앱 사용 중 Lock 버튼을 누른 경우 위 두 경우 모두 앱의 Life-cycle은 background 상태입니다. 저는 Home 버튼을 눌러서 background에 진입한 경우에 특정 팝업을 띄워주길 원했기 때문에 위 두 가지 경우를 구분하고 싶었습니다. func applicationDidEnterBackground(_ application: UIApplication) { if (DidUserPressLockButton()) { print("User pressed lock button") } else { print("user pressed home button") } } private func DidUserPressLockButton() -> Bool ..
구현 기능 이메일 인증을 위해서 특정 링크를 클릭했을때 앱으로 이동 기술 검토 - Firebase DynamicLink - UniversalLink 위 두 가지를 사전에 검토했다. Firebase를 사용하면 Apple-app-site-association 파일을 따로 올릴 필요도 없고 좋지만 상황상 기존 링크 주소를 바꾸기는 힘들어서 기존 링크를 그대로 등록할 수 있는 Universal Link 를 사용하기로 했다. Universal Link 사용법 www.raywenderlich.com/6080-universal-links-make-the-connection Universal Links: Make the Connection Learn how to connect your iOS app with your ..
가끔 작업량이 많은 브랜치를 merge 하다보면 project.pbxproj 파일이 깨져 프로젝트가 열리지 않을 때가 있다. 이때는 project.pbxproj에서 잘못된 부분을 수정 해줘야 한다. 그런데 문제는 project.pbxproj 파일은 기본 수천줄이기 때문에 잘못된 부분을 찾는다는 것은 현실적으로 불가능하다. 다행히도 이를 도와주는 라이브러리가 있다. https://github.com/Karumi/Kin Karumi/Kin Simple PBXProj Verifier. Contribute to Karumi/Kin development by creating an account on GitHub. github.com kin 이라는 라이브러리로 사용법은 깃헙에 잘 나와있다. kin이 project...
요구 사항 1. 일반적인 온보딩 페이지 2. 넘길때 애니메이션 효과 적용 (이때 전환시 애니메이션 효과 적용) (특히, 총 4개의 온보딩 page가 있는데 마지막 화면은 button의 모양이 변경됨) 사전 조사 온보딩 페이지를 만드는 방법은 크게 두 가지가 있습니다. 1. UIPageViewController 사용 2. UIScrollView 사용 UIPageViewController는 책장을 넘기는 형태의 뷰 생성을 도와주는 객체이고 UIScollview는 isPagingEnabled 속성을 true로 하면 scroll시 page를 넘기는 것과 같은 효과를 줄 수 있습니다. 결론적으로 UIScrollView를 활용하는 방식을 선택했습니다 두 가지 이유가 있는데 첫째는 pageControl를 맨 하단이 ..
tableView를 reload 하는데 스크롤 위치가 조금 아래로 밀려나는 현상이 있었습니다. 원인은 tableView의 cell을 automaticDimension으로 줬기 때문이었습니다. automaticDimension 이란? tableView를 사용할때 cell 마다 높이가 다르게 적용될 수 있습니다. 카카오톡 말풍선만 봐도 글 내용에 따라서 cell 마다 크기가 다릅니다. 그런 경우 아래와 같이 automaticDimension을 적용해주어 rowHeight가 유동적이라고 선언합니다. tableView.rowHeight = UITableView.automaticDimension 이 결과 기존의 RowHeight를 무시하고 Row 안의 내용에 따라 Row 높이가 유동적으로 결정되게 합니다. "Ro..
https://www.avanderlee.com/xcode/svg-image-assets/ SVG Assets in Xcode for Single Scale Images - SwiftLee SVG Image Assets allow you to use Singe Scale icons and symbols. Stop wasting time by generating @1x, @2x, and @3x images by using SVG assets instead. www.avanderlee.com 위 글을 번역한 글입니다. 직역이 아닌 이해한 것을 바탕으로 작성했기 때문에 원문과는 차이가 있을 수 있습니다. XCode 12부터 SVG 파일 사용이 가능합니다 XCode12부터 SVG 이미지 파일을 지원합니다. XC..
UIResponder UIResponder는 이벤트에 반응하고 이를 핸들링 할 수 있는 객체입니다. 위의 상속 구조를 보면 알 수 있듯이, UIView, UIViewController는 UIResponder를 상속하고 있습니다. 이벤트가 발생하면 UIKit은 리스폰더 객체에 이벤트를 넘깁니다. 특정 이벤트를 처리하기 위해서는 해당 이벤트에 대응하는 메서드들을 오버라이드하여 구현할 수 있습니다. *toucheBegan(), touchedMoved(), touchedEnded(), touchedCancelled() 메서드가 있습니다. class ViewController: UIViewController { override func touchesBegan(_ touches: Set, with event: UI..
animation의 변천사 (iOS 2) beginAnimations, commitAnimations (iOS 4) closure 형태인 animate 메서드 (iOS 10) UIViewPropertyAmimation 1번은 현재 deprecated 되었습니다. 2번이 많이 쓰이고 있는데, 애플에서는 3번 방법의 사용을 권장하고 있습니다. 그럼 2번, 3번 방법에 대해서 알아보겠습니다, Animate animate(withDuration: animations:) → duration(시간), animation(변화될 특성) 을 파라미터로 받습니다. animate(withDuration: animations: completion:) → 위 파라미터에 더해. 애니메이션 완료시 동작하는 completion을 추..