본문 바로가기
반응형

미스터 후1575

UITableView, UITextfield Keyboard 내리는 방법 2가지. 사실, 흔하디 흔한 내용의 글이다. 새로 프로젝트를 진행하면서 Swift로 개발을 또 하게 되었고 사용할 때마다 새삼 좋다는 느낌을 받고 있다. 오늘은 어제 UI작업을 하면서 사용했던 코드 몇 가지를 올린다. 키보드 내리기 위한 방법 2가지. 첫번째, UITableView의 UITableViewCell를 커스터마이징 한 다음 UITextfield를 사용할 경우, UITableView가 스크롤 될 때 마우스를 내리는 방법은 간단하게 설정하면 된다. self.tableView.keyboardDismissMode = .onDrag 두번째, View영역 어디를 터치하더라도 편집 모드를 종료하겠다는 제스처 등록이 그 방법이다. 역시 많이들 사용하는 방법이다. private func addTapGesture() {.. 2022. 4. 15.
M1, pod install - command compileswift failed with a nonzero exit code 이전 포스팅도 마찬가지였지만, M1으로 프로젝트를 하다보니 말썽이 자꾸 생긴다. 이상하게도 지난번 프로젝트에서는 pod가 이렇게까지는 애를 먹이지 않았는데 이번에는 살짝 황당하게 만드는 상태라 정리를 해 두고자 한다. 현재 사용하고 있는 장비는 iMac (24-inch, M1, 2021) MacOS Monterey이다. 나만 이런것이 아닌듯 구글 검색을 하면 많이 나온다. 그런데 그 방식대로 했을 경우 제대로 되지 않았는데 지나고 보니 두서 없이 막 하다보니 꼬인듯하다. 월요일 아침 출근해서 한 단계식 진행을 하니 정상적으로 빌드가 되었다. ^^; Last login: Mon Apr 11 08:05:35 on console ~ % sudo gem uninstall cocoapods Gem 'cocoapo.. 2022. 4. 11.
Macbook M1 Pro에서 부딪히는 문제 - pod install error 맥북 M1 Pro에서 개발 환경을 셋팅하는 일은 항상 긴장을 하게 하는 것 같다. 어떤 변수가 나올지 모르니 지금까지의 경험치가 무용지물이 되는 느낌이다. 운영 중이던 소스 디렉토리를 전달 받아 pod를 새로 만들기 위해 기존 폴더와 파일을 삭제하고 pod install 이라고 치니 뭐 이상한 오류가 나온다. @@ 구글링을 하니 많은 분들도 이런 경험을 겪고 있는 듯 하다. 그래서 나도 옮겨본다. 원본 URL은 https://ondemand.tistory.com/340 애플 M1 환경에서 cocoapod 를 통한 pod install 실패 대응 방법 간만에 Swift 환경으로 넘어오니 묵혀있던 애플 M1 환경에서의 에러 공습이 시작되었습니다. cocoapod 설치까지는 잘 진행되었으나 필요한 의존성을 P.. 2022. 3. 4.
함수를 어떻게 짜죠? -클린코드 중- 클린코드 책을 읽다 보니 이건 기록을 해 두면 좋겠다는 생각이 들어 옮겨 놓는다. 소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대개 서투르고 어수선하므로 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다. 내가 함수를 짤 때도 마찬가지다. 처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉흥적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다. 그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중.. 2022. 2. 4.
fileManager tmp directory of files delete, stack-logs.xxxx.... 앱을 개발하면서 지속적인 테스트를 진행하다 보니 갑자기 폰에서 용량이 없다는 알림이 떠고 더 이상 앱이 설치 되지 않았다. 설정의 아이폰 용량을 확인해보니 개발중인 앱의 용량 중, 문서 및 데이터의 용량이 20기가 넘어있었다. 설치된 앱의 컨테이너를 다운로드하여 패키지 안을 보니 tmp디렉토리에 알수없는 로그 파일이 잔뜩 쌓여있어 이를 삭제하는 로직을 추가하게 되었다. 근본적인 원인은 누가 쌓고 있는지 모르겠으나, 설사 안다고 해도 라이브러리거나 SDK거나 일게 뻔하디 뻔하여 그냥 앱 시작 시점, 백그라운드 들어가는 시점 등에서 tmp디렉토리의 파일을 삭제하는 함수가 불려지도록 구현을 했다. 따라서 해당 함수를 기록해 둔다. /// 템프폴더의 파일을 삭제 private func clearTmpFolerO.. 2021. 11. 30.
UITableView Grouped 스타일의 헤더 안보이게 처리 UITableView를 가지고 화면을 만들다 보니, 여지껏 알지 못했던 여러가지 설정이나 값들이 있다는 사실을 알았다. 테이블뷰의 스타일을 Grouped로 설정을 하고 tableView의 heightForHeaderInSection의 리턴값을 보통 0으로 리턴을 했지만 결과는 원하는 형태가 아니었다. 인터넷을 찾아보니 나와 비슷한 고민을 한 사람들이 있는 듯 하다. heightForHeaderInSection 의 리턴 값을 0이 아닌 CGFloat.leastNormalMagnitude를 반환하도록 하면 헤더의 높이가 없는 상태로 보여진다. Plain모드에서는 해당 사항이 없고 Grouped 스타일에서 해당되는 내용이다. 오랜만에 포스팅을 올린다. 일이 좀 정리가 되면 여러가지 유용한 정보들을 정리해서 올.. 2021. 11. 12.
반응형