반응형 프로그래밍304 UITableView, UITextfield Keyboard 내리는 방법 2가지. 사실, 흔하디 흔한 내용의 글이다. 새로 프로젝트를 진행하면서 Swift로 개발을 또 하게 되었고 사용할 때마다 새삼 좋다는 느낌을 받고 있다. 오늘은 어제 UI작업을 하면서 사용했던 코드 몇 가지를 올린다. 키보드 내리기 위한 방법 2가지. 첫번째, UITableView의 UITableViewCell를 커스터마이징 한 다음 UITextfield를 사용할 경우, UITableView가 스크롤 될 때 마우스를 내리는 방법은 간단하게 설정하면 된다. self.tableView.keyboardDismissMode = .onDrag 두번째, View영역 어디를 터치하더라도 편집 모드를 종료하겠다는 제스처 등록이 그 방법이다. 역시 많이들 사용하는 방법이다. private func addTapGesture() {.. 2022. 4. 15. 함수를 어떻게 짜죠? -클린코드 중- 클린코드 책을 읽다 보니 이건 기록을 해 두면 좋겠다는 생각이 들어 옮겨 놓는다. 소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대개 서투르고 어수선하므로 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다. 내가 함수를 짤 때도 마찬가지다. 처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉흥적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다. 그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중.. 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. UIImageView 회전 애니메이션 (Swift ver) 통합 자산 총액을 새로고침하는 버튼이 있다. 이 버튼이 눌려질 때 버턴 안에 새로고침 아이콘을 회전시켜 달라는 요구사항. 간단하게 생각해서 transform으로 rotationAngle 로 애니메이션을 구현함. UIView.animate(withDuration: 0.8) { let rotate = CGAffineTransform(rotationAngle: .pi) self.refreshIconView.transform = rotate } completion: { result in let rotate = CGAffineTransform(rotationAngle: .zero) self.refreshIconView.transform = rotate } /// completion에서 iconView의 trans.. 2021. 9. 10. XCode archive distribute content? distribute app 설정 오늘 앱 Archive를 하다가 닥친? 문제. 아카이브 빌드 후 오픈 된 창에서 distribute app이 안나오고 distribute content가 나온다. 이게 뭐야? 난 content는 필요없다. 찾아낸 결과 target Build Settings > Deployment > Skip Install > YES 를 NO로 수정하고 다시 아카이브하면 된다. 끝. 2021. 9. 9. 이전 1 ··· 6 7 8 9 10 11 12 ··· 51 다음 반응형