목록ios (27)
Weekoding
예제로 공부를 하던 중 아래와 같은 코드를 발견했다. 3개의 버튼에 각각 그림자 효과를 넣는 코드이다. 버튼 하나씩 적용하면 총 9줄인데.. 신기하게 배열로 묶고 .forEach 메소드를 사용해 단 3줄만에 3개 버튼의 동적 처리를 끝냈다. [seriesBtn, movieBtn, categoryBtn].forEach{ $0?.layer.shadowColor = UIColor.black.cgColor $0?.layer.shadowOpacity = 1.0 $0?.layer.shadowOffset = CGSize(width: 1, height: 1) } .forEach는 내장 함수일 것 같은데,,, $0는 무엇일까? 선언이 된 곳도 없었다. 찾아보니 Closure의 단축 인자라는 것을 알게 되었다. ⌘ 클로저..
앱을 만드는데 있어 고려하게 되는 부분 중 다크모드 지원 여부와, 가로모드 지원 여부가 있다. 확실히 다크모드와 가로모드를 지원하게 된다면, 파편화나 색상 문제를 고려할 것이 훨씬 많아지니 난이도가 높아지는 것 같다. 프로젝트를 생성 하면, 기본적으로 양쪽 모두를 지원하는 설정으로 되어 있다. 이를 지원하지 않는다면 어떻게 해야 하는지 한번에 간단히 알아보았다. 🔳 다크모드 설정 🔲 info.plist의 'Appearance' key값을 이용하면 된다. 기존의 UIUserInterfaceStyle이라는 속성과도 동일하다. Value값에 Light, Dark를 이용하여 두 모드 중 하나로 강제할 수 있다. 추가로, 코드상으로 다크모드를 확인할 수 있는 프로퍼티는 UITraitCollection.userIn..
공부를 하던 도중 파일을 Xcode 프로젝트 폴더에 넣어야 하는 일이 발생했다. 가령 Google Firebase를 사용할 때 필요한 GoogleService-Info.plist같은 파일들 말이다. 드래그 앤 드롭을 하면 그냥 들어갈 줄 알았는데, 아래와 같은 화면이 등장했다. Copy items if needed: 체크하면 프로젝트 폴더로 해당 파일/폴더가 복사가 된다. 프로젝트 폴더에 파일이 없는 경우 복사하게 되는 것인데, 체크 해제된 상태라면 프로젝트가 프로젝트 폴더에 없는 파일에 의존하게 되어 파일의 수정 및 이동시에 에러가 발생하게 된다. 프로젝트 파일 압축 전송이나 Git 업로드 시에도 파일이 올라가지 않는다는 것.(플젝 소스 공유 시 난처한 상황이 발생할 수 있다) Create groups..