23.08.25 금
·
iOS/🌱 SeSAC
tableview register 등등 클로저 구문에 imageview frame 지정 시점 💡 CustomTableViewCell 구현하기 ✔️ UITableViewCell 생성 → 인터페이스 빌더 상에서 셀을 구현할 때 작동한다. ✔️ view.addSubView / contentView.addSubView view.addSubView → uiViewController의 변경할 수 없는 기본 view 위에 얹는 것 tableViewCell은 Content View위에 다른 뷰들이 올라가는 것이다. ⇒ 때문에 addSubView를 할 때 view가 아닌 contentView 위에 올려야 한다! contentView가 아닌 tableViewCell위에 올리는 것은 오류가 발생하지는 않지만 레이아웃 적용이..
23.08.24 목
·
iOS/🌱 SeSAC
💡 카메라 권한: 촬영, 갤러리, 마이크 ImagePickerControlller → deprecated 예정 ⇒ PHPicker 🔎 갤러리에 접근하기 인스턴스 가져오기 let picker = UIImagePickerController() photoLibrary, savedPhotosAlbum → will be deprecated camera는 아직 사용 가능 available - 갤러리에 접근할 수 있는지 권한 단독으로 사진만 가져오고 싶다 → 권한 안물어봐도 됨 민감한 데이터 혹은 정보 사용 등 경우 권한 물어봐야 함 ⇒ 갤러리를 가지고 오는 권한과 갤러리 내 데이터 사용하는 권한은 다름! UIImagePickerController는 navigationController를 상속받아 사용한다. ✅ 사진..
23.08.23 수
·
iOS/🌱 SeSAC
leading / leadingMargin constraints to margin 체크박스 체크 유무 차이 위치 서비스 활성화 → 사용자 권한 확인 → 권한 결정 안되어 있다면 얼럿 → 바뀐 권한 체크 → 다시 권한 확인 → 허용 authorizedWhenInUse → didUpdateLocation viewDidLoad에서 권한을 체크하는 함수를 호출하지 않아도 권한 변경 함수가 호출이 된다. 주석처리 하지 않는 것이 좋다. 버그 이슈 🐞 버그 navigationController를 달고 화면 전환을 하면 권한 변경 메서드가 호출되지 않는다. viewdidload가 기본적으로 호출하는 것은 아니다. nav나 tab 등을 달고 화면 전환을 해야하는 경우라면 권한 체크 함수를 명시적으로 viewDidLoa..
23.08.22 화
·
iOS/🌱 SeSAC
💡 NSLayoutConstraints → addConstraints 사용하기 isActive addConstraints constraints → 여러개 추가 constraint → 하나 추가 addConstraints로 레이아웃에 대한 항목을 한 눈에 볼 수 있다. ✅ NSLayoutAnchor centerXAnchor → x축 중앙 뷰 객체가 safeArea를 벗어난다. safeArea 위로 constraints를 잡기 위해 view.safeAreaLayoutGuide.bottomAnchor 사용 🚨 view.addSubView를 작성하지 않는다면 런타임 오류 발생한다. 레이아웃을 잘못 잡은 것 처럼 오류가 난다. 뷰가 올라와 있어야 레이아웃을 지정하는데 올라오지 않은 뷰를 레이아웃 잡으려 하니 레이..
23.08.21 월
·
iOS/🌱 SeSAC
💡 알림 사용자가 권한을 허용해야 알림 가능 앱 재사용률(Retention)에 기여 앱이 종료 된 경우에도 사용자에게 표시 가능 ✅ willPresent 알림을 특정 화면이나 특정 조건에서만 포그라운드 알림을 받도록 할 수 있고, 또 특정 화면에서는 알림 안받기도 설정 가능하다. 특정 푸시를 클릭하면 특정 화면으로 이동 알림 개수 제한 : 하루에 하나의 앱에서 64개로 제한이 있다. identifier기반 이전에 등록된 알림을 제거하는 방식으로 더 보여주기도 한다. 카톡: 포그라운드 앱을 켜는 순간, 등록되어 있던 모든 알림들을 제거 ✅ 알림 스택 제거 알림 유효기간이 존재함(한달) identifier 기반으로 특정 알림을 지울 수 있다. 캘린더 기반 알림 설정 Date Components → 10시 5..
23.08.18 금
·
iOS/🌱 SeSAC
✅ Font asset은 copy bundle resources에 들어가있음 폰트파일 연결하기 폰트명을 찾아보자! 폰트 파일 명과 폰트명은 다를 확률이 높다. ✅ Dispatch Group 서로 다른 task들을 그룹화 하여 Queue에 보낸 task들이 작업을 완료할 때 까지 기다리고, 그룹화 된 task가 완료되면 notify를 통해 알림을 받을 수 있는 기능을 한다. QoS Quality Of Service 동시에 일을 맡기기는 하지만 먼저 작업을 했으면 좋겠는 작업 설정 background → 작업 중요도가 낮은(파일 다운로드) unspecified → 시스템에게 중요도 순위를 알아서 판단하라고 맡김 userInteractive → 중요도가 높은 작업 모든 일을 가장 먼저 혹은 늦게 하는 것은 아..
23.08.14 월
·
iOS/🌱 SeSAC
열거형은 저장 프로퍼티를 사용할 수 없다 → 인스턴스 생성 불가 static이 붙어있다면 상관 없다. 사용 가능 → 데이터 영역에 저장 연산 프로퍼티 static var photo → static 제거하면? 인스턴스 연산 프로퍼티 → 값을 저장하고 있지는 않고, 값을 사용할 수 있는 통로로서의 역할만 담당 인스턴스 연산 프로퍼티는 인스턴스 연산 프로퍼티만 사용 가능 타입 연산 프로퍼티를 사용할 수 없어서 오류가 난다. 타입 명시가 된다면 타입 프로퍼티 사용 가능하다. → 런타임 시 api 체크 요청을 했기 때문에 보라색 오류가 나타난다. → 동기, 순서대로 실행, 끝나는 지점 알 수 있음 버튼이 눌려있는 상태로 끝나길 기다린다. async 이미지는 메인 스레드에서 동작해야 한다. global async로..
테이블 뷰 셀 오류
·
iOS/🚨 오류 그리고 해결
오류 났을 때 바로 정리 좀 할걸.. 왜 안되지 하다가 해결하고 나서야 블로그를 쓸 생각을 했다.. 💻 구현 테이블뷰 컨트롤러를 이용하여 쇼핑 리스트 추가하기를 구현하고 있었다. 오른쪽에 즐겨찾기 버튼과 왼쪽에 체크박스 이미지를 놓고 별 버튼을 누르면 채워진 별로 즐겨찾기 활성화, 셀을 누르면 체크박스 이미지가 채워져 확인 완료 표시를 구현하려 했다. checked는 체크박스 체크 유무, like는 즐겨찾기 유무 🚨 문제 버튼 이벤트 적용한 후 리스트를 추가하면 즐겨찾기 버튼 이미지가 제멋대로 채워졌다가 사라지는 오류가 생겨남 셀을 선택하면 체크박스 이미지 뷰의 이미지를 변경하였으나, 리스트를 추가하면 체크박스가 모두 리셋이 됨. 🤯 나의 노력 테이블 뷰에대한 이해도가 매우 낮은 상태다 보니 어떤 메서드..
UserDefaults와 Sandbox System
·
iOS/💻 iOS Study
💡 UserDefaults 앱을 실행하는 동안에 키-값 쌍으로 데이터를 저장하는 기본 데이터베이스 인터페이스이다. 애플에서 기본으로 제공하는 저장소로 딕셔너리와 비슷한 구조를 가지고 있다. 런타임 시점에 기본 데이터베이스가 생성되고 .plist 파일에 저장이 된다. plist 파일은 Sandbox 내에 저장되기 때문에 앱을 꺼도 데이터가 유지되고, 앱을 삭제한 경우에만 데이터가 제거가 된다. UserDefaults를 사용할 때는 대용량 데이터나 사용자 정보와 같은 데이터보다는 자동로그인 여부, 알림 설정 여부, 인앱 결제 여부, 간단한 사용자 기본 설정 등과 같은 단일 데이터를 저장한다. 💡 App Sandbox ✅ Sandbox란? App Sandbox는 보호된 영역 안에서 프로그램을 작동시키는 보안 ..
멀고도 험한 AutoLayout 설정의 길
·
iOS/🚨 오류 그리고 해결
AutoLayout,, 알겠는데 모르겠다(?) 머릿속으로 상상하여 멋진 결과를 꿈꿨지만 현실은 크기도 엉망 위치도 엉망 인스타 UI를 만들어보자 -> 내가 꿈꾼 완성작 아이폰 14 pro로 실행했을 땐 눈 빠지게 만든 보람이 있었다. 하지만 오토레아이웃은.. 다양한 크기의 디바이스에서도 이 레이아웃을 잃으면 안되기 때문에 아이폰 8, 아이폰 8플러스에서도 실행해보았다. 이상해진 내 인스타 ui 눈이 빠지게 여백과 비율을 설정했지만 아이폰 8로 구동하는 순간 와장창창.. 상단 아이디 레이블도 사라지고 게시물 부분도 요상해졌다. -> 아이폰 8 플러스 아이디 레이블이 잘려나갔다. 대체 왜? 알 수 없다. 제대로 이해하지 못했으니 어떻게 연결했는지 알리가 있나.. sos 요청 그리고 해결.. 저가요.. 일케 ..