본문 바로가기
반응형

프로그래밍/Swift51

[Swift] @discardableResult, 함수 리턴값 사용하지 않는 Call에 대한 배려 Result of call to 'checkValidate(type:)' is unused 와 같은 경고가 나온다면 메서드 선언 앞에 @discardableResult 어노테이션을 사용하면 경고를 없앨 수 있다. 그리고, 해당 함수를 호출 할 때 리턴 값을 사용하지 않을 때는 받지 않을 수 있다. 알아두면 유용할 수 있다. 2022. 5. 25.
swift NavigationController back 제스처 제어하는 코드(UIGestureRecognizerDelegate) 오늘 일하던 중, 뷰컨트롤러의 계층 구조에 대한 오류(whose view is not in the window hierarchy.)가 발생하는 바람에 이전 프로젝트에서 했던 방식과 동일하게 네비게이션컨트로럴를 사용하도록 변경을 하고 특정 페이지에서는 좌에서 우로 제스처 동작이 먹히지 않도록 처리를 했다. 이런건 기록 해놔야 한다. 전체적인 뷰컨트롤러의 관리는 UIManager가 하고 있으므로 UIManager에 다음과 같은 메서드가 있다. 다음 프로토콜을 따른다고 명시해야한다. @protocol UIGestureRecognizerDelegate 소스코드는 다음과 같다. /** * NavigationBar Back */ func gestureRecognizer(_ gestureRecognizer: UIGe.. 2022. 5. 10.
UITableView, UITextfield Keyboard 내리는 방법 2가지. 사실, 흔하디 흔한 내용의 글이다. 새로 프로젝트를 진행하면서 Swift로 개발을 또 하게 되었고 사용할 때마다 새삼 좋다는 느낌을 받고 있다. 오늘은 어제 UI작업을 하면서 사용했던 코드 몇 가지를 올린다. 키보드 내리기 위한 방법 2가지. 첫번째, UITableView의 UITableViewCell를 커스터마이징 한 다음 UITextfield를 사용할 경우, UITableView가 스크롤 될 때 마우스를 내리는 방법은 간단하게 설정하면 된다. self.tableView.keyboardDismissMode = .onDrag 두번째, View영역 어디를 터치하더라도 편집 모드를 종료하겠다는 제스처 등록이 그 방법이다. 역시 많이들 사용하는 방법이다. private func addTapGesture() {.. 2022. 4. 15.
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.
반응형