'XIB'에 해당되는 글 1건

  1. 2013.07.15 4인치 디바이스 지원하기 (iPhone 5) (10)


오늘의 Tip

1. 4인치 디바이스 적용하기


음... 일단 매우 늦은감이 넘치지만ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

요청이 있어 짬내어 포스팅합니다.

아이폰 5가 출시되면서 화면 비율의 파편화가 생겼죠...

Aㅏ........... 

여튼...ㅋㅋㅋ 아이폰 5에 적절히 대응하는 방법에 대해 알아보도록 합시다.

# 기본 준비

일단, 4인치 기기인지 구별할 수 있는 매크로를 구현해 봅시다.

프로젝트의 pch파일에 해당 매크로를 추가합니다.

이렇게 해 두면 프로젝트 어디에서라도 이 매크로를 사용할 수 있습니다.


그리고 한가지 팁을 더 추가하면

시뮬레이터에서 기기를 변경하는 방법입니다.

3.5인치, 4인치 번갈아가면서 하려면 기기를 선택할 줄 알아야 하죠.





# nib(xib)을 사용하는 경우

여러가지 방법이 존재하지만, 제가 사용하고 있는 방법을 소개해 드릴게요.

카테고리를 이용합니다.

프로젝트에서 카테고리 파일을 하나 만들어 줍니다.


그리고 아래와 같이 소스를 작성해 줍니다.

소스 내용은 과니님 소스를 참고하였습니다. ( http://tiny2n.tistory.com/139 )

+ 덧

소스 원작자 과니님께 미리 양해를 구하지 못해 죄송합니다. 

덧글로 말씀해주셔서 이제야 수정하고 사과드립니다.

참, 이 소스는 ARC 기준입니다 :)


UIViewController_Is4Inch.h

UIViewController_Is4Inch.m




기존 xib파일을 3.5인치 디바이스 크기로 변경해 주고,



4인치용 xib 파일을 만들어 줍니다.

우선 빈 xib 파일을 만들어 준 후 


xib의 클래스를 해당 클래스에 맞게 설정 해 주신 후에, 뷰를 하나 얹습니다. 크기는 4인치용으로!


참, 뷰 컨트롤러 xib니까 view 아울렛을 연결해 주시는 것도 잊지 마시구요~!

아울렛 연결 방법은 ( http://blog.yagom.net/185 ) 참고! 


4인치 디바이스 실행 시,



3.5인치 디바이스 실행 시




# 스토리보드를 사용하는 경우

간단합니다.

일단 4인치용 스토리보드를 하나 더 만들어 줍니다.


그리고 기존 스토리보드의 크기는 3.5인치 크기로~



새로운 스토리보드에 4인치 화면과 label을 하나 얹어주시고~ 



AppDelegate의 application:didFinishLaunchingWithOptions 메소드에 아래와같이 작성해 줍니다.


끝~!

4인치 디바이스 실행 시,



3.5인치 디바이스 실행 시,





# 4인치 전용 이미지 로딩이 필요한 경우

이 경우는 최건우님께서 작성해 두신 오픈소스를 사용하였습니다.

https://gist.github.com/Hardtack/4755404

UIImage+HTLong.h
UIImage+HTLong.m

두 파일을 프로젝트에 포함시켜 빌드하기만 하면 됩니다.

-568h 라는 suffix를 가지게 되면 4인치 디바이스일 경우 자동으로 해당 이미지를 로드합니다.

만약 -568h 접미어를 가진 파일이 없는 경우 기본 이미지를 로드하게 되구요.


이상입니다.


참고.

http://cafe.naver.com/mcbugi/236038

http://www.couplestyle.com/entry/%EC%9D%B4%EC%A0%84-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%95%84%EC%9D%B4%ED%8F%B05-%ED%95%B4%EC%83%81%EB%8F%84-%EB%8C%80%EC%9D%91


http://blog.naver.com/PostView.nhn?blogId=whiteday910&logNo=40186791084

http://tiny2n.tistory.com/139

http://survival.egloos.com/310015

http://blog.naver.com/PostView.nhn?blogId=syowoo&logNo=100172131674


by yagom

facebook : http://fb.yagom.net

twitter : http://twitter.yagom.net ( @yagomsoft )

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 손가락 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 


Posted by yagom

댓글을 달아 주세요

  1. yimcold@gmail.com 2013.08.01 16:33  댓글주소  수정/삭제  댓글쓰기

    역시 이곳에 있었어 ㅋㅋㅋㅋㅋ
    매번 도움받네요!
    감사합니다 ^_^

  2. Favicon of https://holic5719.tistory.com BlogIcon 홀릭s 2013.10.28 10:26 신고  댓글주소  수정/삭제  댓글쓰기

    잘읽었습니다^^

  3. 방문자 2014.03.11 15:28  댓글주소  수정/삭제  댓글쓰기

    [tableView registerNib:[UINib nibWithNibName:@"TableViewCell" bundle:nil] forCellReuseIdentifier:@"Cell"];
    cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    테이블뷰에 쏄도 XIB를 사용하는대 이건적용이 안되요 ㅠㅠ

    도움 부탁드리겠습니다.

  4. 방문자 2014.08.04 22:14  댓글주소  수정/삭제  댓글쓰기

    Yagom 님 글을 보면서 하루하루 배우고 있습니다 :)
    그런데 이 소스를 사용해보는데, LegacyNibName 부분에서 undeclared selector 라고 warning이 발생하고
    4인치 시뮬레이터를 켜도 3.5인치 화면이 나오는데... 어떻게 해야되나요?? ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2014.08.05 10:31 신고  댓글주소  수정/삭제

      안녕하세요 :)
      경고가 나오는건 맞구요, 3.5인치 화면이 나온다면 4인치 xib파일의 이름이 잘 맞게 되어있는지, 카테고리 헤더파일을 import 했는지, initWithNib으로 뷰 컨트롤러를 init했는지 확인해보시기 바랍니다 :)

  5. 이젠 2014.10.28 13:29  댓글주소  수정/삭제  댓글쓰기

    이렇게 개발하면 큰일나죠..
    오토레이아웃을 써야해요

  6. 과니 2016.12.19 23:57  댓글주소  수정/삭제  댓글쓰기

    지금이야 안쓰는 기법들이지만, 다음부터는 출처와 함께 원작자에게도 알려주셨으면 합니다. 출처로 작성할 경우 copyright를 남겨두는 것 또한 기본 매너이구요.

    • Favicon of https://blog.yagom.net BlogIcon yagom 2016.12.20 01:15 신고  댓글주소  수정/삭제

      안녕하세요 과니님! 제가 당시에는 그 점을 미처 몰랐어요^^; 정말 죄송합니다! 지금은 모바일이라... 차후에 수정토록 하겠습니다! 행복한 연말 되시길 빕니다