Swift에서 UILabel에 동적으로 높이를 지정하려면 UILabel의 frame 속성을 활용하면 됩니다. frame은 CGRect를 사용해 생성할 수 있으며, 이를 통해 X 좌표, Y 좌표, 너비(width), 높이(height) 등 다양한 값을 자유롭게 설정할 수 있습니다.기본적인 UILabel 생성 및 추가하기먼저 간단한 레이블을 만들고 현재 뷰의 서브뷰(subview)로 추가하는 예제를 살펴보겠습니다.let label = UILabel() label.frame = CGRect(x: 10, y: 40, width: 200,
Swift에서 컬렉션 뷰(UICollectionView)를 사용하려면 가장 먼저 컬렉션 뷰 인스턴스를 생성해야 합니다. 스토리보드에 드래그 앤 드롭으로 추가하는 방법과 코드로 직접 작성하는 방법 두 가지가 있습니다.컬렉션 뷰를 생성한 후에는 클래스가 UICollectionViewDataSource와 UICollectionViewDelegate 프로토콜을 반드시 채택해야 합니다. 전자는 컬렉션 뷰에 데이터를 공급하는 역할을 하고, 후자는 사용자의 터치 등 상호작용 이벤트를 처리하는 역할을 합니다.또한 셀의 크기나 레이아웃을 커스터마이
iOS에서 스크롤 가능한 텍스트뷰(UITextView)를 만드는 방법은 크게 두 가지가 있습니다. 하나는 스토리보드(Storyboard)를 이용하는 방법이고, 다른 하나는 Swift 코드로 직접 생성하는 프로그래밍 방식입니다.텍스트뷰는 기본적으로 텍스트 내용이 뷰의 높이보다 길 경우 자동으로 스크롤이 활성화됩니다. 단, 스크롤 관련 속성이 켜져 있어야 한다는 점에 유의하세요.1. 스토리보드 사용하기스토리보드를 열고 오브젝트 라이브러리(Object Library)에서 텍스트뷰를 드래그하여 뷰 위에 배치합니다.텍스트뷰에 입력된 내용이
iOS에서 하나의 텍스트 뷰(Text View) 안에 서로 다른 여러 스타일을 적용하려면 NSAttributedString(속성 문자열)을 사용해야 합니다. iOS의 UITextView는 attributedText라는 속성을 제공하며, 이 속성을 활용하면 텍스트 뷰 내부의 문자열에 글꼴 크기, 색상 등 다양한 스타일을 자유롭게 지정할 수 있습니다.NSAttributedString이란?NSAttributedString은 단순히 문자열만 저장하는 String과 달리, 문자열의 각 부분에 폰트, 색상, 배경색, 밑줄 같은 스타일 정보(속
Swift에서 UIAlertController로 대화 상자 구현하기iOS 앱에서 사용자에게 메시지를 전달하거나 간단한 선택을 요청할 때 가장 많이 사용되는 UI 요소가 바로 알림창(Alert Dialog)입니다. Swift에서는 UIKit의 핵심 클래스인 UIAlertController를 활용해 손쉽게 대화 상자를 만들 수 있습니다.이번 글에서는 빈 프로젝트를 하나 생성하고, 기본 뷰 컨트롤러 안에서 알림창을 만드는 과정을 단계별로 살펴보겠습니다.1단계: UIAlertController 객체 생성가장 먼저 알림창의 제목과 내용, 스
Swift에서 이미지 로드 및 표시하기iOS 앱에서 이미지를 로드하고 화면에 표시하려면 가장 먼저 프로젝트에 사용할 이미지 파일이 필요합니다.준비한 이미지를 Xcode 프로젝트로 드래그하여 가져온 뒤, Copy items if needed(필요한 경우 항목 복사) 옵션과 앱의 타겟(Target)을 반드시 선택해야 합니다. 이 과정을 통해 이미지가 앱 번들(Bundle)에 정상적으로 포함됩니다.이제 실제 예제를 통해 나머지 과정을 살펴보겠습니다.UIImageView 생성 및 이미지 할당이미지를 화면에 표시하기 위해서는 UIImageV
iOS 애플리케이션에서 스와이프 제스처를 처리하려면 Swift로 간단한 예제 앱을 만들어 직접 확인해 보는 것이 가장 효과적입니다. 구현 방식은 크게 두 가지로 나눌 수 있는데, 하나는 스토리보드(Storyboard)를 활용하는 방법이고, 다른 하나는 코드로 직접 작성하는 프로그래밍 방식입니다.방법 1 – 스토리보드를 이용한 구현먼저 오브젝트 라이브러리(Object Library)에서 Swipe Gesture Recognizer를 드래그하여, 스와이프 제스처를 추가하고 싶은 뷰 컨트롤러(View Controller) 위에 드롭합니다
Swift에서 이미지뿐만 아니라 뷰(View), 버튼(Button) 등 어떤 UI 요소든 둥근 모서리(round corners)를 적용하려면 해당 요소의 layer에 있는 cornerRadius 속성에 접근해야 합니다. iOS의 모든 UI 요소는 내부적으로 레이어(layer)를 기반으로 동작하기 때문입니다.1. UIImageView 생성하기먼저 스토리보드(Storyboard)에 UIImageView 객체를 추가하거나, 코드로 직접 생성할 수 있습니다. 아래는 코드로 이미지 뷰를 생성하고 이미지를 추가하는 함수입니다.func addI
iOS 앱을 개발하다 보면 테이블 뷰(UITableView) 맨 아래에 제출 또는 확인 같은 버튼을 배치해야 하는 경우가 자주 있습니다. 이럴 때 가장 깔끔하게 해결할 수 있는 방법은 바로 테이블 뷰 푸터(Footer)를 활용하는 것입니다. 이 글에서는 테이블에 푸터 뷰를 추가하고, 그 안에 버튼을 배치하는 전체 과정을 코드 예제와 함께 단계별로 살펴보겠습니다.1. 프로젝트 생성 및 테이블 뷰 초기화먼저 Xcode에서 새로운 프로젝트를 생성합니다. 그다음 뷰 컨트롤러에 아래 코드를 추가하여 테이블 뷰를 초기화하고, 하나의 섹션과 몇
PayU Money는 인도 온라인 시장에서 널리 사용되는 결제 게이트웨이입니다. PayU Money를 iOS 앱에 통합하려면 몇 가지 단계를 거쳐야 하며, 통합 과정 중 어떤 단계도 건너뛰지 않도록 주의해야 합니다.PayU Money 통합 절차PayU Money 회원가입: 먼저 PayU Money 공식 사이트에서 가입을 진행합니다.키·솔트·머천트 ID 확인: 가입을 완료하면 Key(키), Salt(솔트), Merchant ID(머천트 ID)가 자동으로 생성됩니다. 이 값들은 PayU Money 계정에 로그인한 후 대시보드에서 확인할
UITableView의 셀을 탭했을 때 다른 ViewController로 화면을 전환하려면, 일반적인 ViewController 간 Segue를 연결하는 것과 동일한 방식으로 작업하면 됩니다. 여기서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.스토리보드 설정먼저 새 프로젝트를 생성한 뒤, 스토리보드에서 기존 View Controller를 삭제하고 Table View Controller 하나와 View Controller 하나를 추가합니다.Table View Controller에는 기본적으로 프로토타입 셀이 하나 포함되어
런타임에 UIBarButtonItem의 타겟(Target)과 액션(Action) 설정하기iOS 개발을 하다 보면 UIBarButtonItem의 타겟과 액션을 코드로 동적으로 설정해야 하는 경우가 종종 있습니다. 이 글에서는 런타임에 내비게이션 바에 버튼을 추가하고, 해당 버튼에 액션을 연결하는 방법을 단계별로 살펴보겠습니다.1. 새 프로젝트 생성 및 내비게이션 컨트롤러 임베드먼저 Xcode에서 새 프로젝트를 생성합니다. 프로젝트가 만들어지면 스토리보드로 이동하여 ViewController를 선택한 뒤, Editor → Embed I
Swift에서 하나의 문자열이 다른 문자열을 포함하고 있는지 확인하려면 두 개의 서로 다른 문자열이 필요합니다. 하나는 검색 대상이 되는 전체 문자열이고, 다른 하나는 포함 여부를 확인할 문자열입니다.예를 들어 확인할 문자열이 point이고, 전체 문자열은 TutorialsPoint, 또 다른 전체 문자열은 one two three라고 가정해 보겠습니다. 이 두 문자열을 플레이그라운드(Playground)에서 직접 테스트해 보겠습니다.포함 여부를 확인하는 방법은 크게 두 가지가 있습니다. 먼저 세 개의 문자열 변수를 생성해 보겠습니
Swift에서 UIActivityIndicator 크기를 변경할 수 있을까?결론부터 말하면, Swift에서 몇 가지 트릭을 사용하면 UIActivityIndicator의 크기를 변경하는 것이 가능하지만, 공식적으로 권장되는 방법은 아닙니다. 이번 글에서는 실제로 크기를 조절해 보고, 왜 권장되지 않는지 그 이유까지 함께 살펴보겠습니다.1. 기본 상태의 액티비티 인디케이터 확인하기먼저 빈 화면에 액티비티 인디케이터를 하나 추가하고, 기본 상태에서 어떻게 보이는지 확인해 보겠습니다. 이 예제에서는 인디케이터의 색상도 빨간색으로 변경해
MBProgressHUD는 iOS 앱에서 로딩 인디케이터나 진행 상태를 표시할 때 널리 사용되는 오픈소스 라이브러리입니다. Swift 프로젝트에서 MBProgressHUD를 사용하려면 먼저 Podfile이 없는 경우 새로 생성해야 합니다.터미널을 열고 프로젝트 디렉터리로 이동한 뒤 CocoaPods를 초기화하고, 이어서 MBProgressHUD를 설치합니다.cd /projectDirectory pod init open podfilePodfile이 열리면 아래 한 줄을 추가합니다. 그다음 터미널로 돌아가 같은 디렉터리에서 설치 명령어
Swift에서 문자열의 마지막 4자를 추출해야 할 때가 종종 있습니다. 다행히 Swift의 String 클래스가 제공하는 내장 함수만으로도 간단하게 처리할 수 있습니다.다만 Swift는 버전이 올라갈 때마다 메서드가 추가·개선되거나 폐기(deprecated)되는 경우가 많아, 버전에 따라 사용 가능한 방법이 다릅니다. 이 글에서는 대표적인 두 가지 방법을 예제와 함께 살펴보겠습니다.방법 1 — Substring 사용 (Swift 3)Swift 3에서는 substring(from:) 메서드를 사용할 수 있었습니다. 이 방식은 문자열의
iOS 애플리케이션이 현재 포그라운드에서 실행 중인지, 백그라운드에 있는지 확인해야 하는 경우가 자주 있습니다. 다행히 UIApplication 클래스를 활용하면 아주 간단하게 앱의 실행 상태를 감지할 수 있습니다. 이 클래스는 배터리 상태, 시스템 정보 등 다양한 앱 상태를 확인할 때도 사용됩니다.UIApplication.shared로 앱 상태 확인하기앱의 공유 리소스는 UIApplication.shared에 저장되어 있으며, 여기서 제공하는 applicationState 속성을 사용하면 현재 앱의 상태를 바로 알 수 있습니다.p
개요Swift에서 비디오 재생이 끝나는 시점을 감지하려면 먼저 비디오 플레이어를 생성한 후, 알림(Notification)을 활용해 재생이 중단되는 순간을 포착해야 합니다. 이 글에서는 실제 예제 코드를 통해 그 과정을 단계별로 살펴보겠습니다.1. 프로젝트 준비하기먼저 새로운 프로젝트를 생성하고, mp4 확장자를 가진 비디오 파일을 프로젝트에 드래그 앤 드롭으로 추가합니다. 이때 필요에 따라 Copy items if needed 옵션을 선택하고, 프로젝트 타겟에 반드시 포함시켜야 합니다.2. 비디오 플레이어 생성 및 재생이제 코드로
iPhone 앱에서 사용자의 현재 위치를 활용하려면 반드시 먼저 위치 서비스 권한을 요청해야 합니다. Swift에서는 CLLocationManager 클래스를 사용하면 손쉽게 권한 상태를 확인하고 요청할 수 있습니다.1. CLLocationManager 객체 생성가장 먼저 뷰 컨트롤러 내에 위치 관리자 객체를 생성합니다. 이 객체를 통해 권한 확인과 요청 등 모든 위치 관련 작업을 처리하게 됩니다.var locationManager = CLLocationManager()2. 기기에서 위치 서비스 활성화 여부 확인권한을 요청하기 전에
Swift에서 두 개의 NSDate 비교하기 이 글에서는 Swift에서 두 개의 NSDate 객체를 비교하는 방법을 알아보겠습니다. 날짜를 비교하려면 먼저 비교 대상이 될 두 개의 날짜를 생성해야 합니다. 이번 예제는 시뮬레이터 대신 플레이그라운드(Playground)에서 진행하겠습니다. 1. 두 개의 날짜 생성하기 먼저 서로 다른 두 개의 날짜를 만들어 보겠습니다. NSDateComponents를 사용하면 연도, 월, 일을 지정해 원하는 날짜를 손쉽게 구성할 수 있습니다. let dateOne = NSDateComponents(