fra3il

fra3il


Navigation
CategoryiOS
Featured

iOS

CGContextShowTextAtPoint vs. CoreText

Posted on February 3rd, 2012.

한글, 일본어와 같은 문자는 CGContextShowTextAtPoint 를 이용하여 표현하는 것이 불가능하기 때문에 CoreText 를 이용해야 한다. CoreText 는 CGContextShowTextAtPoint 에 비해서 사용 방법이 복잡하지만 여러가지 효과를 줄 수 있다고 한다. View the code on Gist. 관련 링크 Befriending Core Text

Featured

iOS

UIKeyboardCandidateBar + Bluetooth Keyboard

Posted on January 31st, 2012.

iOS5 부터 특정 언어에는 아래 그림과 같이 UIKeyboardCandidateBar 가 추가되었다. 대충 구조는 아래와 같이 이루어져있는 것 같고.. UIKeyboardCandidateBar UIKeyboardCandidateBarBackgroundView UIScrollView UIKeyboardCandidateBarCell 여튼 기존 코드에서 키보드에 관련된 노티피케이션을 이용, 키보드의 높이를 구해서 뷰를 처리하는 과정이 추가될 수 밖에 없었다. .. 이제 끝?! 일반적인 경우는 여기까지 처리하면 끝나는 문제지만 Bluetooth Keyboard 가 연결된 경우는 이야기가 다르다. eject...

Featured

iOS

UITableViewCell 을 커스텀 할 때 주의할 점

Posted on January 16th, 2012.

UITableView 는 Editing 설정에 따라서 – 버튼이나 삭제 버튼이 화면에 보여진다. 이 경우, UITableViewCell 의 오브젝트를 자동으로 조정해주는 것을 볼 수 있다. 그런데 왜 커스텀을 할 때는 오브젝트의 위치가 자동으로 조정되지 않는 것일까?! 답은 잘못된 방식으로 오브젝트를 붙이고 있었기 때문이었다. 레퍼런스를 보면 contentView 를 확인할 수 있다. The content view of a UITableViewCell object is the default superview for content displayed by the cell. If you want to...

Featured

iOS

Date And Time Functions

Posted on January 12th, 2012.

조건은 아래와 같다. 1. DB 의 date 컬럼에는 yyyy-MM-dd HH:mm:ss 형태의 값이 들어있다. 2. date 컬럼의 값을 기준으로 하루가 지난 항목의 status 값을 1 로 변경한다. ( 단, status 가 -1 인 항목만 변경한다. ) 완성된 query 는 아래와 같다. View the code on Gist. datetime(‘now’, ‘localtime’) 으로 현재 시간의 yyyy-MM-dd HH:mm:ss 를 가져온다. date 컬럼의 값에서 하루가 지난 값을 구하기 위해서 datetime(date, ‘+1 day’) 와 같이 처리한다. 관련 링크...

Featured

iOS

Retreiving Carrier Name from iPhone Programmatically

Posted on January 4th, 2012.

KT 와 같은 통신사, 즉 네트워크 사업자를 확인하는 방법이 궁금해서 찾아봤다. CoreTelephony.framework 를 추가한 이후에 아래의 방법을 이용하면 된다. ( iOS4.0 이후부터 지원된다. ) View the code on Gist. 관련 링크 Retreiving Carrier Name from iPhone Programmatically iOS Developer Library > CoreTelephony Framework Reference > CTCarrier Class Reference Mobile country code From Wikipedia, the free...

Featured

iOS

maskedImage

Posted on December 27th, 2011.

UIImage 에 마스크 씌우기 에서 마스크에 대한 개념과 마스크 이미지를 이용한 처리 방법에 대해 확인할 수 있다. 만약, 마스크 이미지가 없는 상태로 처리해야 할 경우에는 Core Graphics 로 마스크 이미지를 그려주면 된다. View the code on Gist. 적용 결과는 다음과 같다. 관련 링크 Creating and drawing on a new UIImage

Featured

iOS

Creating and drawing on a new UIImage

Posted on November 25th, 2011.

서버에서 제공하는 이미지 중에 배경이 투명하게 처리된 것이 있었다. 알겠지만 다른 이미지와 겹쳐보이기 때문에 바로 사용할 수 없는 경우가 대부분이고, 서버 측에서 해줄리도 없다. -_- 늘 그렇듯 직접 처리하기로 하고 찾아봤다. 참고로 생성할 수 있는 최대 이미지는 1024×1024 라고 한다. ( 확인해보진 않았.. ) View the code on Gist. 관련 링크 Creating and drawing on a new UIImage

Featured

iOS

Executing Finite-Length Tasks

Posted on November 15th, 2011.

기본적으로 iOS 는 멀티태스킹을 지원하지 않는다. 앱이 백그라운드 상태로 진입하면 잠시 멈췄다가 포그라운드 상태로 진입할 때 다시 활성화될 뿐이다. 물론 상황에 따라서 백그라운드 상태에서의 작업이 필요한 경우가 있다는 것을 인지하고, 애플에서는 제한적이지만 iOS4.x 부터 멀티태스킹을 지원하고 있다. ( Audio, Location, VoIP 에 해당하는 작업인 경우 백그라운드에서도 프로세스가 돌아가도록 허용하고 있다. ) 백그라운드 상태에서 추가적인 작업이 필요한 경우, 다음과 같은 방법을 사용할 수 있다. View the code on Gist. 테스트하며 알게된 건 1. 대략 10 분...

Featured

iOS

EUC-KR 로 인코딩 되어 있는 자료를 처리하는 방법

Posted on November 4th, 2011.

EUC-KR 로 인코딩 되어 있는 자료를 처리하기 위해서는 아래와 같이 Data 형식으로 받아서 인코딩 처리를 해줘야 한다. 이후 JSON 처리 과정에서 0x0D, 0x0A 때문에 아래와 같은 에러가 발생하는 경우가 있다. _JSONValue failed. Error is: Unescaped control char 0x0D_ _JSONValue failed. Error is: Unescaped control char 0x0A_ 이럴때는 CR ( Carriage Return, r ), LF ( Line Feed, n ) 를 찾아서 제거해주면 된다. ( 혹은 r, n 으로 변경 ) View the...

Featured

iOS

Declaration of ‘struct sockaddr_in’ will not be visible outside of this function in Reachability.h

Posted on October 27th, 2011.

iOS5 에서 Reachability 를 사용하는 경우는 아래와 같은 경고를 볼 수 있다. warning: declaration of ‘struct sockaddr_in’ will not be visible outside of this function 그냥 그대로 써도 문제 없는 것 같지만 신경에 거슬린다면, Reachability.h 에 한 줄 추가해주자. View the code on Gist. 관련 링크 iOS5開発でReachabilityで警告が出た場合の対処