본문 바로가기

개발/iOS

(23)
[ios] AVAudioPlayer AVAudioPlayer란? 아이폰에서는 대부분의 정보를 화면을 통해 제공하지만 간혹 소리를 이용해 정보를 제공하기도 합니다. 예를 들어 운전 중일 때 화면을 통한 정보 제공은 위험합니다. 이때는 소리를 이용한 정보 전달이 가장 효과적인 방법일 것입니다. ios에서는 기본적으로 음악 재생 앱과 녹음 앱을 제공합니다. 오디오 파일을 재생할 수 있다면 벨소리나 알람과 같이 각종 소리와 관련된 작업을 할 수 있스빈다. 또한 일정 관리 앱에 녹음 기능을 추가해 목소리로 메모를 하는 등 메인 기능이 아닌 서브 기능으도 사용할 수 있습니다. 오디오를 재생하는 방법 중 가장 쉬운 방법은 AVAudioPlayer를 사용하는 것입니다. AVAudioPlayer는 다음과 같이 다양한 오디오 포맷 및 코덱을 지원합니다. A..
[ios] 자동 레이아웃 설정 자동 레이아웃이란? 자동 레이아웃(Auto Layout)은 기기의 디스플레이 크기와 관계없이 동일한 레이아웃을 구현하는 기능입니다. 예를 들어 자동 레이아웃 기능을 사용하지 않을 경우에는 스토리보드에서 작업한 아이폰은 크기가 딱 맞지만 다른 디스플레이 크기에는 맞지 않습니다. 하지만 자동 레이아웃 기능을 사용하면 이미지 뷰의 위, 오른쪽 아래, 왼쪽 여백이 알맞게 설정되어 디바이스가 바뀌어도 해당 디바이스의 여백에 맞게 배치됩니다. 미리보기 사용하기 자동 레이아웃을 사용하기 전에 미리보기 기능을 알아보기. 자동 레이아웃을 설정하려면 여러 디바이스에 동일하게 내용이 적용되고 있는지 확인하면서 진행해야 합니다. 하지만 디바이스마다 적용된 내용이 잘 나오는지 확인하려면 각 디바이스에 맞는 시뮬레이터를 선택하고..
[ios] 테이블 뷰 컨트롤러 테이블 뷰 컨트롤러란? 데이터를 목록 형태로 보여 주기 위한 가장 좋은 방법은 테이블 뷰 컨트롤러(Table View Controller)를 이용하는 것입니다. 테이블 뷰 컨트롤러는 사용자에게 목록 형태의 정보를 제공해 줄 뿐만 아니라 목록의 특정 항목을 선택하여 세부 사항을 표시할 때 유용합니다. 이런 테이블 뷰 컨트롤러를 잘 설명해 줄 대표적인 앱으로 알람, 메일, 연락처 등이 있습니다. 1. 기존의 뷰 컨트롤러 삭제하기 2. 테이블 뷰 컨트롤러 추가하기 3. 네비게인션 컨트롤러 추가하기(화면이동) 4. 뷰 컨트롤러 추가하기( 목록 추가화면, 디테일 화면) 5. 뷰 전환 추가하기 (액션 세그웨이) ※ 세그웨이 지정 방법 1. Show : Swift 2.x 에서의 [Push]와 유사합니다. 기본 뷰 컨..
[ios] 내비게이션 컨트롤러 내비게이션 컨트롤러란? 탭 바 컨트롤러는 보통 각 화면이 서로 연관성이 없는 경우가 많은데, 그렇다면 화면과 화면을 전환할 때 연관성이 많거나 데이터를 주고받아야 하는 경우에는 어떻게 해야 할까요? 그런 경우에 사용하는 것이 바로 내비게이션 컨트롤러입니다. 내비게이션 컨트롤러를 스토리보드에 추가하기 뷰 추가하기 [Library] 버튼을 클릭한 후 팝업 창에 [뷰 컨트롤러 (View Controller)]를 끌어다 '메인화면' 컨트롤러의 오른쪽 빈 공간에 갖다 놓습니다 뷰 전환하기 [Edit] 바 버튼을 마우스 오른쪽 버튼으로 클릭한 채 오른쪽의 뷰 컨트롤러에 갖다 놓습니다. 그러면 검은색 창이 나타나는데, 여기에서 [Action Segue]를 [Show]로 선택합니다. 그러면 '메인화면'에서 서브 화면으..
[ios] 탭 바 컨트롤러 상황에 따라 하나의 뷰가 아니라 다양한 내용, 즉 여러 개의 뷰를 보여 줄 때가 더 많습니다. 이를 위해 여러 개의 뷰와 더불어 뷰를 선택해 이동할 수 있게 해주는 컨트롤러가 필요합니다. 그 역할을 하는 것이 바로 탭 바 컨트롤러입니다. 이러한 탭 바를 이용하는 대표적인 앱에는 아이폰의 시계, 음악, 전화 앱이 있습니다. 탭 바 컨트롤러를 스토리보드에 추가하기 다른 스토리 보드 탭 바 컨트롤러에 등록하기 탭 바 아이콘 타이틀 변경 탭 바의 아이콘과 타이틀을 임의로 수정할 수 있습니다. 하면 오른쪽 인스펙터 영역에서 [Attributes inspector] 버튼을 클릭한 후 Image와 Title을 이용해 수정합니다. 32 x 32px 크기의 아이콘(이미지 파일)을 프로젝트에 추가한 후 인스펙터 영역의 [..
[ios] 페이지 컨트롤(Page Control) 페이지 컨트롤이란? 페이지 컨트롤(Page Control)은 오른쪽 그림에서 아래쪽의 작은 동그라미가 줄지어 있는 부분으로, 여러 페이지 중에서 현재 페이지를 알려 주는 역할을 합니다. 다시 말해 현재 뷰에서 보여 주고자 하는 내용이 여러 개일 때 페이지를 나누어서 보여주는 기능을 말하지요. 흔히 갤러리나 아이폰 홈 화면과 같은 앱에서 전체 페이지 중 현재 페이지가 어느 부분에 있는지 알려 줄 때 사용합니다. [출처] Do it 스위프트로 아이폰 앱 만들기
[ios] 맵 뷰(Map View)로 지도 나타내기 ※ 앱 실행 시 경고 창에 "This app has attempted to access privacy-sensitive data without a usage description' 이라는 메시지가 있다면 'info.plist'을 수정 하여 해결 하자 버튼과 세그먼트 컨트롤의 차이 세그먼트 컨트롤은 여러 세그먼트로 구성된 수평 컨트롤이며, 세그먼트는 각 세분화된 기능을 가진 버튼을 말합니다. 기능상으로 세그먼트는 버튼과 동일하다고 볼 수 있습니다. 다만, 세그먼트 컨트롤은 관련이 있는 버튼들을 모아 놓은 것이라 생각하면 됩니다. 그리고 모아 놓은 버튼에 '선택'의 개념이 더해졌습니다. 예를 들어 세 개의 버튼을 나열하엿을 경우 이 버튼들의 관련이 있는지 없는지 알 수 없지만 세그먼트 컨트롤에 사용된 세그먼..
[ios] 웹 뷰(Web View)로 간단한 웹 브라우저 만들기 웹 뷰란? 웹 뷰는 웹 콘텐츠를 뷰 형태로 보여 주는 앱 입니다. 다시 말해 익스플로러, 크롬 브라우저와 같이 HTML로 작성된 홈페이지를 표시할 수 있습니다. 직접 인터넷에 연결된 주소를 입력하여 홈페이지에 접속할 수 있을 뿐만 아니라 미리 저장된 HTML 파일을 읽어들여 표시할 수도 있습니다. ※ 웹 페이지가 로딩할 때 나타나도록 'Info.plist' 파일을 수정해야합니다. 아래 App Transport Security Settings > Allow Arbitrary Loads 추가 ※ WebView 추가 후 빌드 오류 시 해결 방법 > WebKit.framework 추가