SwiftUI: 방사형(원형) 레이아웃 (Radial Layout) 만들기
소개 뷰의 중심점(center point)과 반경을 계산하여 사용자 정의 방사형 레이아웃을 생성합니다. 커스텀 레이아웃 및 예제의 대부분 코드들은 iOS 16부터 지원합니다. 출처: Radial Layout 커스텀 Radial Layout 만들기 레이아웃 중앙에 서브뷰를 배치하고 인덱스 값을 사용하여 최소한의 변형(transfor...
소개 뷰의 중심점(center point)과 반경을 계산하여 사용자 정의 방사형 레이아웃을 생성합니다. 커스텀 레이아웃 및 예제의 대부분 코드들은 iOS 16부터 지원합니다. 출처: Radial Layout 커스텀 Radial Layout 만들기 레이아웃 중앙에 서브뷰를 배치하고 인덱스 값을 사용하여 최소한의 변형(transfor...
세컨더리 도미넌트 세븐스 (차용화음) 논다이어토닉 코드 (Non-diatonic chord)입니다. 다이어토닉 코드에서는 긴장-해결 역할을 하는 코드가 V7 ↝ IM7 밖에 없습니다. 단조로워 질 수 있기 때문에 이를 피하기 위해 다른 키의 도미넌트 코드를 빌려와 긴장-해결감을 줄 수 있는데 이를 세컨더리 도미넌트...
소개 HTML과 자바스크립트를 이용해 아래와 같이 숫자(Transpose)를 조절하면 서버 상에 있는 오디오 음원의 음정(pitch, 음높이)이 높아지거나 낮아지게 할 수 있습니다. 웹 페이지에서 다른 음높이의 오디오 음원을 재생하고 싶을 때 사용합니다. 장점 외부 라이브러리를 사용하지 않습니다. 단점 음정을 높이면...
소개 SwiftUI에서 여러 개의 버튼을 드래그로 선택할 수 있는 예제입니다. 클릭으로도 선택 가능하고 터치 드래그를 멈춰도 선택 가능합니다. 예전에 올렸던 SwiftUI 예제: 알파벳 내비게이터(Alphabet Navigator) 만들기 에서 사용했던 기술을 버튼으로 바꿔서 구현한 것입니다. 시작 코드 struct Drag...
소개 Xcode의 iOS 프로젝트에서 Fastlane 설정하는 방법입니다. 다음과 같은 과정을 알아보겠습니다. 컴퓨터에 Fastlane 설치 iOS 프로젝트에 Fastlane 초기화 및 통합 AppStore Connect API로 인증 연결 API 키 생성 Fastfile 설정 외부 파일에 환...
플레이스홀더 플레이스홀더는 Xcode에서 매우 빈번하게 사용되는 기능입니다. 단독으로 사용하기보다는 주로 코드 스니펫 기능과 결합되어 많이 사용됩니다. “플레이스홀더”는 일반적으로 코드를 작성할 때 사용되는 임시적인 값 또는 표시물을 가리킵니다. 이는 주로 코드 작성 중에 아직 정확한 값을 알지 못할 때 사용됩니다. 플레이스홀더를 사용하면 코...
문제: 쉬운 계단수 https://www.acmicpc.net/problem/10844 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력: 첫째 줄에 N이 주어진다. N...
알파벳 내비게이터 만들기 아래와 같이 알파벳으로 섹션이 나뉘어져 있으며 해당 알파벳을 클릭하면 섹션으로 이동하는 기능을 알파벳 내비게이터라고 칭하겠습니다. (정식 명칭은 다를 수 있습니다.) 출처 SwiftUI List with Section Index on right hand side? 기본 형태 Contacts...
소개 PDFView에서 탭했을 때 확대 여부에 상관없이 실제 PDF 문서상의 좌표를 알아내고 싶을 때 사용하는 방법입니다, 스크린상에 터치했을 때 나오는 좌표를 실제 PDF 페이지에 알맞게 변환하여 사용합니다. 확대/축소 및 스크롤 위치 여부에 상관없이 일정한 좌표값을 받을 수 있습니다. 방법 Step 1: UITapGestur...
소개 UIKit에서 특정 로딩 상황이 발생할 때 로딩 인디케이터를 띄우는 예제입니다. 외부 라이브러리를 사용하지 않고 기본 제공 요소로 만들었습니다. 코드 import UIKit struct LoadingIndicatorUtil { static let `default` = LoadingIndicatorUtil() ...